java基础知识点之多态,接口,抽象类



Java基础知识点

多态

在运行时,子类的对象可以转换为父类类型,而父类的对象实际上无法转换为子类类型

Java编译器允许在具有直接或间接继承关系的类之间进行类型转换,对于向上转型,Java编译器会自动进行,对于向下转型,需要进行强制类型转换在运行时环境中,通过引用类型变量来访问所引用对象的方法和属性时,Java虚拟机采用以下绑定规则:

  1. 实例方法与引用变量实际引用的对象的方法绑定,这种绑定属于动态绑定,因为是在运行时由Java虚拟机动态决定的。

  2. 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经绑定。

  3. 成员变量(静态变量,实例变量)与引用变量所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经绑定 。

接口

  1. 接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)。

  2. 接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化。接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法。

  3. 接口中没有构造方法,不能被实例化。

  4. 一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口。

  5. 接口必须通过类来实现它的抽象方法。

  6. 当类实现了某个接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象的。

  7. 不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例。

抽象类

  1. 抽象类是不能直接实例化对象的。

  2. 抽象类的子类必须重写父类的抽象方法,才能实例子化,否则子类也是一个抽象类。

  3. 抽象类可以含有普通数据,普通方法。

发布了52 篇原创文章 · 获赞 9 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章