Java 学习笔记
14.方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个
方法。重写发生在父类与子类之间。
15. 当两个方法形成重写关系时,可以在子类方法中通 super.run()形式调用
父类的 run()方法,其中 super.run()不必放在第一行语句,因此此时父类对
象已经构造完毕,先调用父类的 run()方法还是先调用子类的 run()方法是根
据程序的逻辑决定的。
16.在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承
于 java.lang.Object 类(JDK 提供的一个类,Object 类是 Java 中所有类的
直接或间接父类)。
17. 多态(Polymorphism):我们说子类就是父类(玫瑰是花,男人是人),
因此多态的意思就是:父类型的引用可以指向子类的对象。
1.
多态:父类型的引用可以指向子类型的对象。
2. Parent p = new Child();当使用多态方式调用方法时,首先检查父类
中是否有 sing()方法,如果没有则编译错误;如果有,再去调用子类的
sing()
方法。
3.
一共有两种类型的强制类型转换:
a) 向上类型转换(upcast):比如说将 Cat 类型转换为 Animal 类型,即将
子类型转换为父类型。对于向上类型转换,不需要显式指定。
b) 向下类型转换(downcast):比如将 Animal 类型转换为 Cat 类型。即将
父类型转换为子类型。对于向下类型转换,必须要显式指定 (必须要使用强制
类型转换)。
4. 抽象类(abstract class):使用了 abstract 关键字所修饰的类叫做抽象
类。抽象类无法实例化,也就是说,不能 new 出来一个抽象类的对象(实
例)。
5. 抽象方法(abstract method ):使用 abstract 关键字所修饰的方法叫
做抽象方法。抽象方法需要定义在抽象类中。相对于抽象方法,之前所定义的
方法叫做具体方法(有声明,有实现)。
6.
如果一个类包含了抽象方法,那么这个类一定是抽象类。
7.
如果某个类是抽象类,那么该类可以包含具体方法(有声明、有实现)。
8. 如 果 一 个 类 中 包 含 了 抽 象 方 法 , 那 么 这 个 类 一 定 要 声 明 成 abstract
class
,也 就是说,该类一定是抽象类;反之,如果某个类是抽象类,那么该
类既可以包含抽象方法,也可以包含具体方法。
9.
无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。
10. 在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现
父类中所定义的所有抽象方法;否则,该子类需要声明成一个 abstract
class
。
11. 接口(interface
):接口的地位等同于 class,接口中的所有方法都是抽
象方法。在声明接口中的方法时,可以使用 abstract 关键字,也可以不使用。
通常情况下,都会省略掉 abstract
关键字。
12. 可以将接口看作是特殊的抽象类(抽象类中可以有具体方法,也可以有
抽象方法,而接口中只能有抽象方法,不能有具体方法)。
13. 类可以实现接口。实现使用关键字 implements 表示,代表了某个类实现
2
/
16