接口定义:抽象描述现实世界中不同事物的共同行为特征--公共的抽象方法
接口不是类,接口是一种全新的概念,因此接口和类的区别是什么呢?
回答: 接口只有行为没有属性,但是接口也有多态属性,因此从继承的角度来看接口也是类,子不过这种类是针对行为的,及不同种类数据但是有同一种行为就可以归纳到同一个接口
接口内部:仅可以定义公共的静态方法和全局常量(public static finaly),但是全局常量对于接口的定义没有意义
接口里面的方法全部都是公共抽象方法 --接口定义可以忽略public,abstract 关键字 编译器导致,不能使用private 等修饰词
接口里面的属性必须是全局常量 public static final 修饰
接口调用,具体类可以实现接口,具体关键字为implements(实现),具体类实现接口后可以通过本类或者接口类型接收数据 -- 接口不是类为什么可以接收数据呢?
接口不是类,因此不可以new对象,接口是方法的抽象,因此接口用来被子类实现,new类 可以在内存空间中记录变量属性和类方法,但是new接口因为接口内部都是空,所以不可以new接口
子类继承多个父类,这样会让相同的方法名称方法体冲突,但是子类继承多个类和接口具有相同的方法名,因为继承接口必须要重写方法,所以不冲突,所以最根本原因在于父类 相同的多个方法不需要重新定义,但是接口需要重新定义猜的
接口因为内部都是抽象方法(没有方法体),因此可以帮助java间接实现多继承,直接多继承是因为继承多个类中可能方法之间有冲突,而抽象方法无所谓,所以可以用接口实现。
具体的子类必须实现接口定义的所有方法
为什么子类实现接口的方法,需要用public 关键字,用private关键字不行么?
多态:父类的变量在数据本质上还是子类,改变仅是数据的使用方法,
因此可以在父类的变量造型其他父类
object obj = new animal();
interface_a a1 = (interface_a )obj ;
多接口调用语法:
public class classname [extends superclass] [implements interface name1,name2,name3,... ]
继承的子类方法再本类中重写是不能使用static关键字
标签:Java,子类,接口,new,父类,方法,public From: https://www.cnblogs.com/wade3/p/17068099.html