Java只能單一繼承,也就是一個class只能從一個class繼承而來
跟C++不同,Java沒有多重繼承
p.s. 但是一個class可以被很多class繼承
p.s. Java 要做多重繼承的替代方法是使用interface
Manager Class 繼承 Employee Class
繼承往越上層的Class走是 Generalization
往越下層走是 Specialization
"is a" relationship
A 繼承了 B , A "is a" B,換句話說 A 是一種 B
例如 Manager is a Employee
"has a"
...
繼承的特性 Demo
所有沒寫就是繼承自 Object Class
B 繼承 A
因為 B 繼承 A 所以可以用繼承而來的 x 變數
Access Control
Overload 多載
Override 覆蓋:蓋掉了原來的定義
思考: A -> B -> C 上面的繼承階層中
假設有 m1() method
為何只允許 super.m1()
不可 super.super.m1()
因為
1. 不確定parent class C有沒有m1()
2. 或是B class 的 m1()根本就已經是繼承來的他裡面也沒有m1()
Polymorphism 的概念
延續上述的繼承關係
A a = new A()
A type的物件既有A type的特性也有B type與C type的特性
生活上的例子是
你既是台大工科系的學生,也是工學院的學生,也是台大學生
留言
張貼留言