接口的认识
接口的认识:在生活中有usb接口,有插座接口,我们只要满足了他的要求就可以使用这个接口,而Java中的接口就是让我们实现一些功能更加迅捷的一种工具,是一种引用数据类型。
接口的声明
我们如何使用接口呢?和类很像,需要用到interface关键字来声明,
格式为:(public) + interface + 接口名称 + (extends + 其他接口)
在接口中的成员变量默认的类型为public static final 成员方法为 public abstract
我们不能使用private来修饰成员变量或者成员方法
因此我们需要注意必须将成员变量初始化,对于成员方法不可以在接口中直接实现(就是里面不能实现任何功能),(从jdk8开始,使用default可以实现。)
我们尽量保持代码的简洁,常常省略不写public static final / public abstract,
对于接口的命名,我们常常用“I”(即大写的I)来开头
接口的实现
接口是不能被实例化的,接口就是用来被继承的,因为在接口中我们不能实现成员方法,所以在继承的过程中我们必须实现接口中所有的方法,如果不想实现,那么接口继承的类必须为抽象类。
实现接口的格式为:类 + implements + 接口名称 (,更多的接口名称)
此时的运行结果 会输出Dog中func实现的代码 ---》 正在跑
在类中实现的成员方法是我们不能使用默认权限,必须使用public,因为继承过来的变量和成员方法在子类中的权限必须大于或者等于父类的权限
在接口中我们不能有构造方法和静态代码块,为什么呢?其实很简单,在构造方法中我们无非就是给变量方法赋值,因为接口中的变量默认权限都是 public static final ,所以不能有构造函数。
接口的继承
接口也是可以继承的,和类的继承很像,使用extends关键字
如果B继承了A,同时有类继承了B,那么那个类必须实现A和B中所有的方法,不然的话就需要将类设置为抽象类。
此时已经报错了。
在java中一个类不能实现多继承,但是一个类可以实现多接口