#1.繼承
public class animal
public void sleep()
public void activity()
public class cat extends animal
public class test
#2.在子類中,訪問父類中的成員方法格式:super.父類中的成員方法();
public class phone
public void call()
public void shownum()
public class newphone extends phone
public class test
#3.重寫
當子類**現和父類一模一樣的方法時,會出現覆蓋。也稱為override重寫、複寫或者覆蓋。
##重寫的應用
當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。
注意事項:
1、子類方法覆蓋父類方法,必須要保證許可權大於等於父類許可權。
2、寫法上稍微注意:必須一模一樣:方法的返回值型別 方法名 引數列表都要一樣。
3、不要和過載混淆了,覆蓋是在繼承裡面的。
#總結:當乙個類是另乙個類中的一種時,可以通過繼承,來繼承屬性與功能。如果父類具備的功能內容需要子類特殊定義時,進行方法重寫。
#多型存在的三個必要條件
繼承: 多型的前提是必須有子父類關係或者類實現介面關係,否則無法完成多型。
重寫: 在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫後的方法。
父類引用指向子類物件,比如:parent p = new child();
#多型的定義格式:就是父類的引用變數指向子類物件
父類型別 變數名 = new 子類型別();
變數名.方法名();
#普通類多型定義的格式
父類 變數名 = new 子類();
如: class fu {}
class zi extends fu {}
//類的多型使用
fu f = new zi();
#抽象類多型定義的格式
抽象類 變數名 = new 抽象類子類();
如: abstract class fu
class zi extends fu
}//類的多型使用
fu fu= new zi();
#介面多型定義的格式
介面 變數名 = new 介面實現類();
如: inte***ce fu
class zi implements fu
}//介面的多型使用
fu fu = new zi();
#注意事項:同乙個父類的方法會被不同的子類重寫。在呼叫方法時,呼叫的為各個子類重寫後的方法。
如 person p1 = new student();
person p2 = new teacher();
p1.work(); //p1會呼叫student類中重寫的work方法
p2.work(); //p2會呼叫teacher類中重寫的work方法
class fu
class zi extends fu
class demo
}class fu
}class zi extends fu
}class demo
}
繼承 多型 抽象類 介面
繼承 這個世界到處是繼承的例子比如動物是乙個最基礎的物件,人 豬 貓貓 狗狗都從動物繼承了基本的屬性和方法。繼承就是乙個層次結構,先抽象出乙個基本的東西,然後具體的物件從這個基本的東西來繼承,繼承後再寫他特有的,這樣就可以做到復用了。隱藏 如果基類和繼承類裡有一樣的方法,在子類裡呼叫的時候會怎麼樣,...
多型 方法的重寫 和 抽象類
1.多型 對於同乙個物件,身份不同時,呼叫同乙個方法會呈現出不同的狀態。前提是 當父類和子類出現了完全一模一樣的方法。允許的 當父類和子類出現相同方法,父類會隱藏子類的方法呼叫。也就是說 當我們建立了老虎物件,但是將其看成是動物時。這個時候如果呼叫 eat方法,呼叫不是老虎類中的eat,而是動物類中...
C 學習筆記 類的繼承重寫與多型
在宣告類的時候加上 baseclassname 繼承的時候將會繼承所有非private的字段或方法或屬性。public任何地方都能夠訪問 protect對自身類以及自身的子類都是可見的 private僅自己類可見 internal僅在次程式集中可見 方法的重寫 父類的方法要加上virtual關鍵字 ...