【Java笔记】面向对象之多态+接口

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抽象类和接口的区别(接口是特殊的抽象类)

  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
  3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

抽象类类体里只包含静态最终变量和抽象方法,或者是只有抽象方法的时候,抽象类可以等同于一个接口。所以接口是特殊的抽象类

2、3接口的实现

这里写图片描述这里写图片描述这里写图片描述

疑难杂题:什么时候用继承什么时候用接口?
Java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。
Java接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章