面向对象(进阶篇)要点总结
1 、继承可以扩充已有类的功能,通过 extends 关键字实现,可将父类的成员(包含数据成员与方法)继承到子类
2 、Java在执行子类的构造方法前会先调用父类中的无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作
3 、父类有多个构造方法时,如要调用特定的构造方法,则可在子类的构造方法中通过super()关键字来实现
4 、this()用于在同一类内调用其它的构造方法,而 super()则用于从子类的构造方法中调用其父类的构造方法
5 、使用this()调用属性或方法时会从本类中查找,如果本类中没有查找到,再从父类中查找,而使用super则会直接从父类中查找需要的属性或方法
6 、this() 与 super()其相似之处在于:
(1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数正确地执行相对应的构造方法
(2)两者均必须编写在构造方法内的第1行,也正是这个原因,this() 与 super()无法同时存在在同一个构造方法内
7 、重载(overloading)是指在相同类内定义名称相同但参数个数或类型不同的方法,因此,Java可依据参数的个数或类型调用相应的方法
8 、覆写(overriding)是在子类当中定义名称、参数个数与类型均与父类相同的方法,用以覆写父类中的方法
9 、如果父类的方法不希望被子类覆写,可在父类的方法前加上 final 关键字,这样该方法便不会被覆写
10 、final 的另一个功能是把它加在数据成员变量前面,这样该变量就变成了一个常量,因此便无法在程序代码中再做修改了。使用public static final 可以声明一个全局常量。
11 、所有的类均继承自 Object 类。一个好的类应该覆写 Object 类中的 toString() 、equals() 、hashCode() 3个方法,所有的对象都可以向 Object 类进行向上转型
12 、 Java 可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板”,其目的是根据其格式来修改并创建新的类
13 、抽象类的方法可以分为两种:一种是一般的方法,另一种是以 abstract 关键字开头的抽象方法。抽象方法并没有定义方法体,而是要保留给由抽象类派生出的新类来定义
14 、抽象类不能直接用来产生对象,必须通过对象的多态性进行实例化操作
15 、接口是方法和全局常量的集合,接口必须被子类实现,一个接口可以同时继承多个接口,一个子类可以同时实现多个接口
16 、Java 并不允许类的多重继承,但允许实现多个接口
17 、接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口;派生出的接口称为派生接口或子接口。通过这种机制,派生接口不仅可以保留父接口的成员,同时也可以加入新的成员以满足实际的需要
18 、Java 对象的多态性分为向上转型(自动)和向下转型(强制)
19 、通过 instanceof 关键字可以判断对象属于哪个类
20 、匿名内部类的作用是可利用内部类创建不具有名称的对象,并利用它访问类中的成员