繼承,重寫,抽象類多型定義的格式

2021-09-23 17:06:35 字數 1827 閱讀 6638

#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關鍵字 ...