[Java] Ch7 繼承與Access Control


inheritance 繼承:
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的特性
生活上的例子是

你既是台大工科系的學生,也是工學院的學生,也是台大學生

留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking