討論區快速選單
知識庫快速選單
網路投保旅行平安險 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
多層繼承問題 - 爺 父 子 類別之間繼承與方法重載請教
更改我的閱讀文章字型大小
作者 : whitefox(whitefox)
[ 貼文 46 | 人氣 5288 | 評價 0 | 評價/貼文 0 | 送出評價 18 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2016/12/16 下午 04:08:32
在使用類別繼承時,我發現一個問題是:
基礎類別A有函式A1/A2,衍生類別B繼承自類別A有兩個函式B1/B2,最後衍生類別C繼承自類別B並有函式C1/C2
各個函式只有一個功能顯示類別跟函式,而B1使用inherited關鍵字繼承A2,C1使用inherited繼承B1
那我個人理解實作C1時,應該會顯示C1資訊然後顯示inherited B1的資訊,並呼叫B1 inherited A2的資訊才對
可是實際上我發現只有顯示C1資訊跟B1資訊就停止了,不解為什麼會這樣呢?
請各位先進解惑了,謝謝

宣告了三個類別,彼此關係如下
Type
  THuman=class // 基礎類別
  public
     procedure showinfo1;virtual;
     procedure showinfo2;virtual;
  end;

  TStudent=class(Thuman) // 衍生類別
  public
     procedure showinfo1;override; // 虛擬繼承
     procedure showinfo2;override;
  end;

  TWorker=Class(THuman) // 衍生類別
  public
     procedure showinfo1;override;
     procedure showinfo2;override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ THuman }

procedure THuman.showinfo1;
begin
  ShowMessage('THuman Showinfo1');
end;

procedure THuman.showinfo2;
begin
  ShowMessage('THuman Showinfo2');
end;

{ TStudent }

procedure TStudent.showinfo1;
begin
  ShowMessage('TStudent Showinfo1');
  inherited showinfo2; // 調用基礎類別中不同名的函數
end;

procedure TStudent.showinfo2;
begin
  ShowMessage('TStudent Showinfo2');
end;

{ TWorker }

procedure TWorker.showinfo1;
begin
  ShowMessage('TWorker Showinfo1');
  inherited; // 調用父類別中同名函數
end;

procedure TWorker.showinfo2;
begin
  ShowMessage('TWorker Showinfo2');
end;

並加入一個按鈕點擊事件如下
procedure TForm1.Button1Click(Sender: TObject);
var
   W:TWorker;
begin
   w:=Tworker.Create ;
   w.showinfo1;
   w.showinfo2;
end;
 板主 : 郭祈良 , 葉雨心
 > Delphi - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Delphi - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Delphi
1 hagar 8170 
2 心若浮雲 2140 
3 葉雨心 1350 
4 狼鷹 1240 
5 foxelf 730 
6 Allen 680 
7 貓老大 510 
8 xriz8989 440 
9 ㄚ松 410 
10 Falcon 320 
Delphi
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875