類的繼承和介面的實現

2021-07-14 11:14:57 字數 951 閱讀 3412

·  首先是乙個 在控制台列印順序的問題,第一步要看的是從子類中找到new()例項化  首先在例項化子類的物件的時候已經例項化了父類的物件所以是從要首先呼叫

呼叫父類的物件,無論子類的new()裡面有沒有引數都是從父類開始呼叫  父類的開始的呼叫無參的方法  執行完畢後呼叫子類的方法  子類的方法要看子類中對應的引數和非引數方法名如果new後面是有引數的就呼叫有引數的方法名 如果是無引數就呼叫無引數的方法名  :

關於在子類覆寫父類的物件是後就是   要把父類中對應的方法下面的輸出改變 用@override

public  是能夠訪問所有的包和包下的方法  protected是能 訪問相同包類的其他類

private是只能訪問本類下的  同是還不能被內部類所訪問(當程式出錯是特別注意有沒有被定義成provite或者有沒有被定義成protected )

package表示  包訪問權是包級訪問權

在這裡特別特別要注意的事當時抽象類去繼承這個介面

的時候那麼   不需要去寫介面裡面的所有的方法 而如果是非抽象類去

實現的時候要去把 介面下面的所有的方法

要寫出來這是乙個規範要記住

還有最後一點當普通的類去繼承抽象類的時候一定要記住要把該類下的抽象方法也要調過來 (如何辨別抽象方法就是看方法沒有方法體而又方法體的方法不是抽象方法)這裡還要記住的是在呼叫抽象方法的時候 一定要確保抽象方法 作用域沒有被provited或者預設是的包package這樣的去定義一定要被public 或者被protected這樣才可以被繼承 這樣才不會出錯

實現介面的類是否繼承介面實現的問題

在類 a中實現了某些介面,以後在繼承類 a時也會一起繼承所有介面的實現,而不需要在繼承類中顯式地進行介面的實現。除非在繼承類中想要改變父類的介面實現。具體的 如下所示 using system using system.collections.generic using system.linq us...

介面的繼承實現的和定義

1 package main 23 import fmt 45 type humaner01 inte ce 89 type personer inte ce 1314 type student10 struct 1819 func temp student10 sayhi 2223 func te...

關於介面的實現和繼承的問題

inte ce inte ce1 用乙個類去實現這個介面 public class class1 inte ce1 現在,class1實現了介面inte ce1,當類class1的乙個子類class2繼承class1時,子類class2自然就可以訪問helloworld 方法了。問題就出在這裡,其實...