资讯专栏INFORMATION COLUMN

JAVA接口

VioletJack / 2301人阅读

摘要:接口无法被实例化,但是可以被实现,一个实现接口的类,必须实现接口内所描述的所有方法,否则必须声明为抽象类。接口与类之间的关系类与类之间继承关系,只能是单继承,可以多层继承。并且还继承一个类的同时实现多个接口。

JAVA接口 1.什么是接口

接口在java编程语言中是一种抽象的类型,是抽象方法的集合,接口主要用interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。接口不是类,它只包含类要实现的方法。如果实现某个接口的类是抽象类,那么这个类要定义接口中所有的方法。接口无法被实例化,但是可以被实现,一个实现接口的类,必须实现接口内所描述的所有方法,否则必须声明为抽象类。

2.接口与类之间的关系

1.类与类之间:继承关系,只能是单继承,可以多层继承。
2.类与接口之间的关系:实现关系,可以单实现,也可以多实现。并且还继承一个类的
同时实现多个接口。
3.接口与接口之间的关系:继承关系,可以单继承,也可以多继承。

3.接口的特性

1.接口不可以被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口
4.接口中的变量都是静态常量

4.接口的优点

1.因为继承的实现原理决定了他只能被单继承,但是可以多重继承,但是如果出现某些内容在多个父类当中,这样修改起来相当麻烦。使用接口,可以做到立刻实现,立刻使用。不需要实现时,直接移除此接口就可以了。非常的方便。
2.父类引用指向子类对象
3.更容易实现搭建程序的框架
4.更容易实现切换

5.接口与抽象类之间的相同点与不同点

相同点:
1.都是代表系统的抽象层
2.都不能被实例化
3.都能包含抽象方法
不同点:
1.在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法,抽象类便于复用,接口便于代码维护
2.一个类只能继承一个直接的父类,但可以实现多个接口

6.接口代码实例

实例1

public class Security extends Door implements CatEye, Fireproofing {

    @Override
    public void openCat() {
        System.out.println("打开猫眼");

    }

    @Override
    public void closeCat() {
        // TODO Auto-generated method stub
        System.out.println("关闭猫眼");
    }

    @Override
    public void fireproofing() {
        // TODO Auto-generated method stub

    }

    @Override
    public void noFireproofing() {
        // TODO Auto-generated method stub

    }

}

实例2

/**
 * 计算机类
 * 
 * @author Administrator
 *
 */
public class CP {
    private Cpu cpu;

    public Cpu getCpu() {
        return cpu;
    }

    public void setCpu(Cpu cpu) {
        this.cpu = cpu;
    }

    public EMS getEms() {
        return ems;
    }

    public void setEms(EMS ems) {
        this.ems = ems;
    }

    public HardDisk getHardDisk() {
        return hardDisk;
    }

    public void setHardDisk(HardDisk hardDisk) {
        this.hardDisk = hardDisk;
    }

    private EMS ems;
    private HardDisk hardDisk;

    public CP(Cpu cpu, EMS ems, HardDisk hardDisk) {
        super();
        this.cpu = cpu;
        this.ems = ems;
        this.hardDisk = hardDisk;
    }

    public CP() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void show() {
        System.out.println("电脑的cpu是:" + getCpu().getCpuBrand() + "主频是:" + getCpu().getFrequency());
        System.out.println("硬盘容量是:" + getHardDisk().getHardDisk());
        System.out.println("内存的容量是:" + getEms().getEms());
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72844.html

相关文章

  • 乐字节-Java8新特性-接口默认方法

    摘要:注意当多个父接口中存在相同的默认方法时,子类中以就近原则继承。定义静态默认方法这是版简易计算器接口默认方法使用定义接口并提供默认打印方法定义接口默认方法支持方法形参这是数值运算基本接口。。。 总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本。其中包括语言、编译器、库、工具和JVM等诸多方面的新特性。 Java8 新特性列表如下:...

    arashicage 评论0 收藏0
  • 乐字节-Java8核心特性实战-接口默认方法

    摘要:语法中接口可以包含实现方法,需要使用修饰,此类方法称为默认方法。核心特性接口默认方法就介绍到这里了,后续小乐会继续讲述核心特性。 JAVA8已经发布很久,是自java5(2004年发布)之后Oracle发布的最重要的一个版本。其中包括语言、编译器、库、工具和JVM等诸多方面的新特性,对于国内外互联网公司来说,Java8是以后技术开发的趋势。这里主要讲解在开发中几个核心的新特性。(主要从...

    lbool 评论0 收藏0
  • Java进阶3 —— 类和接口设计原则

    摘要:首当其冲的便是接口中的每个声明必须是即便不指定也是,并且不能设置为非,详细规则可参考可见性部分介绍。函数式接口有着不同的场景,并被认为是对编程语言的一种强大的扩展。抽象类与中的接口有些类似,与中支持默认方法的接口更为相像。 原文链接:http://www.javacodegeeks.com/2015/09/how-to-design-classes-and-interfaces.htm...

    lauren_liuling 评论0 收藏0
  • Java8新特性学习笔记

    摘要:虽然目前工作环境仍然以为主,不过目前已是大势所趋了。标准函数式接口新的包定义旨在使用的广泛函数式接口。这一改进使得拥有了类似于多继承的能力。 从Java8发布到现在有好几年了,而Java9也提上发布日程了(没记错的话好像就是这个月2017年7月,也许会再度跳票吧,不过没关系,稳定大于一切,稳定了再发布也行),现在才开始去真正学习,说来也是惭愧。虽然目前工作环境仍然以Java6为主,不过...

    wthee 评论0 收藏0
  • 【全栈之路】JAVA基础课程一_静态变量和接口(20190610v1.0)

    摘要:标识符与关键字标识符指类名包括接口枚举抽象类方法名变量常量名包名等可以自定义的字符组合。如果基本功能在不断改变,那么就需要使用抽象类。抽象类可以实现接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所结,不管...

    appetizerio 评论0 收藏0
  • Java™ 教程(目录)

    Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...

    lifesimple 评论0 收藏0

发表评论

0条评论

VioletJack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<