1、多态
2、接口
1、如果同时出现继承和实现,则必须先继承(extends)再实现(implements)
2、类与类之间的关系为继承,只能单继承,但可以多层继承;类与接口之间的关系为实现,既可以单实现,也可以多实现;接口与接口之间的关系为继承,既可以单继承,也可以多继承。
2、接口与抽象类比较:
关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的
1、1多态的优
点:
增加程序的可扩展性和可维护性,可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
1、2多态的实现:
(多态存在的三个必要条件)继承+重写+父类引用指向子类对象
多态的实现方式
方式一:重写
方式二:接口
1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。
2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。
方式三:抽象类和抽象方法
2、1接口(interface)的定义
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
2、2抽象类和接口的区别(接口是特殊的抽象类)
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
抽象类类体里只包含静态最终变量和抽象方法,或者是只有抽象方法的时候,抽象类可以等同于一个接口。所以接口是特殊的抽象类
2、3接口的实现
疑难杂题:什么时候用继承什么时候用接口?
Java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。
Java接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。