background image

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