10.1 what is inheritance p. 643. labrador corgi
TRANSCRIPT
![Page 1: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/1.jpg)
10.1 WHAT IS INHERITANCEp. 643
![Page 2: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/2.jpg)
Labrador
![Page 3: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/3.jpg)
Corgi
![Page 4: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/4.jpg)
Is-a 關係
Dog
Labrador Corgi
![Page 5: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/5.jpg)
Is-a & Inheritance
• Is-a 關係的定義 ( 課本 p. 644)
– 每隻 Corgi 都是一隻 Dog – 所有 Corgi 都是 Dog– 中文應該翻成「是一種」– 類別間關係• 問題討論:請問 amanda is-a Dog?
– 真實世界的現象• Inheritance( 課本 p. 644)
– 定義– 特性
![Page 6: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/6.jpg)
Inheritance
• Read GradedActivity.java (p. 645)
– 評分活動– Run GradeDemo.java (p. 646)
• Read FinalExam.java (p. 648)
– 期末考是一種評分活動– extends (#5)– setScore (#33)
• Run FinalExamDemo.java (p. 651)– 注意 exam 的類別 (#27)– exam.getPointsEach() (#31)– exam.getScore() (#33)– exam.getGrade() (#34)
![Page 7: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/7.jpg)
main
missed = Integer.parseInt(input); // line 24 (FinalExamDemo.java)
物件區
input20questions3missed
“20”
“3”
exam
![Page 8: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/8.jpg)
main
FinalExam exam = new FinalExam(questions, missed); // line 27 (FinalExamDemo.java)
物件區
input20questions3missed
“20”
“3”numQuestions
pointsEach
numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
score
(20, 3)
exam
![Page 9: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/9.jpg)
FinalExam
double numericScore; // line 20 (FinalExam.java) numQuestions = questions;numMissed = missed;
物件區
numericScore
20questions3missed
“20”
“3” 20numQuestions
pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
score
![Page 10: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/10.jpg)
FinalExam
pointsEach = 100.0 / questions;numericScore = 100.0 - (missed * pointsEach);
物件區
85.0numericScore
20questions3missed
“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
score
![Page 11: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/11.jpg)
FinalExam
setScore(numericScore);
物件區
85.0numericScore
20questions3missed
“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
score
85.0
![Page 12: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/12.jpg)
setScore
score = s; // line 16 (GradedActivity.java) }
物件區
85.0s
“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
![Page 13: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/13.jpg)
setScore
score = s; // line 16 (GradedActivity.java) }
物件區
85.0s
“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
Return to …
![Page 14: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/14.jpg)
setScore(numericScore);}
物件區“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
FinalExam
85.0numericScore
20questions3missed
main
Return to …
![Page 15: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/15.jpg)
main
FinalExam exam = new FinalExam(questions, missed); // line 27
input20questions3missed
物件區“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
exam
![Page 16: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/16.jpg)
main
JOptionPane.showMessageDialog(null, "Each question counts " + exam.getPointsEach() + " points.\nThe exam score is " + exam.getScore() + "\nThe exam grade is " + exam.getGrade());
input20questions3missed
物件區“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
exam
![Page 17: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/17.jpg)
main
JOptionPane.showMessageDialog(null, "Each question counts " + exam.getPointsEach() + " points.\nThe exam score is " + exam.getScore() + "\nThe exam grade is " + exam.getGrade());
input20questions3missed
物件區“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
exam
![Page 18: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/18.jpg)
main
JOptionPane.showMessageDialog(null, "Each question counts " + exam.getPointsEach() + " points.\nThe exam score is " + exam.getScore() + "\nThe exam grade is " + exam.getGrade());
input20questions3missed
物件區“20”
“3” 20numQuestions
5.0pointsEach
3numMissed
FinalExam(int, int)
getPointsEach()
getNumMissed()
setScore(double) getScore() getGrade()
85.0score
exam
![Page 19: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/19.jpg)
父類別成員 vs. 繼承• Public in Superclass– 存在物件內– 子類別可以直接存取
• Private in Superclass– 存在物件內– 子類別無法直接存取
• Compile Lab10_1a.java
– 被視為「不被繼承的」成員 ( 課本 p. 650)
• Constructor in Superclass ( 課本 p. 650)
– Compile Lab10_1b.java– 「不被繼承」 ( 課本 p. 650)
exam.getGrade() in main()setScore(numericScore) in FinalExam()
![Page 20: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/20.jpg)
Checkpoints
• Do Checkpoint 10.2 (a)(c)(d)(e) (p. 655)
![Page 21: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/21.jpg)
10.2 CALLING THE SUPERCLASS CONSTRUCTOR
p. 656
![Page 22: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/22.jpg)
super
• 還記得 default constructor 嗎 ?– 建構式的執行很重要
• Run ConstructorDemo1.java (p. 654)
– Java 偷偷加了 super()– 請注意訊息的先後順序
• super 的用途 – 存取父類別成員,含建構式 ( 課本 p. 656)
– Run ConstructorDemo2.java (p. 658)
– See ppt. 23-5– Lab
• 試著將 SubClass2.java(#9) 註解• 看看執行結果有何不同 Java 自動加上 super();
![Page 23: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/23.jpg)
main
SubClass2 obj = new SubClass2();
物件區
obj
SubClass2()
SuperClass2(int)
不可將父類別建構式視為可繼承的方法
SuperClass2()
![Page 24: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/24.jpg)
SubClass2
super(10);
物件區
SubClass2()
SuperClass2(int)
10
SuperClass2()
![Page 25: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/25.jpg)
SuperClass2
public SuperClass2(int arg) { System.out.println("The following argument " + "was passed to the superclass " + "constructor: " + arg); }
物件區
SubClass2()
SuperClass2(int
)
10arg
Return to …
SuperClass2()
![Page 26: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/26.jpg)
super• 限制 ( 課本 p. 657)– Compile Lab10_2.java
• 限制 ( 課本 p. 657)– Compile Lab10_3.java
• 當子類別建構式程式碼第一行沒有寫 super– Java 偷偷加上 super();– 父類別中沒有寫建構式
• default constructor 出現• Read & Run Lab10_4b.java
– 父類別中僅存在有參數的建構式• Compile Lab10_4a.java
![Page 27: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/27.jpg)
Cube vs. Rectangle
• Overview Rectangle class– See Figure 10-9 (p. 658)
• Read Cube.java (p. 659)
– 注意 Cube 建構式 (#17)
• Run CubeDemo.java– See ppt. 28-34
![Page 28: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/28.jpg)
main
// line 35, 36 (CubeDemo.java)Cube myCube = new Cube(length, width, height);
物件區
10.0length15.0width
12.0heightkeyboard
Scanner
Cube(double, double, double)
widthheight
5
Rectangle(double, double)
3
myCube
length
10.0, 15.0, 12.0
![Page 29: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/29.jpg)
Cube(double, double, double)
super(len, w); // line 20 (Cube.java)
物件區
10.0len15.0w
12.0h
Scanner
Cube(double, double, double)
widthheight
5
Rectangle(double, double)
3
length
10.0, 15.0
![Page 30: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/30.jpg)
Rectangle(double, double)
length = len; // line 14 (Rectangle.java) width = w;
物件區
10.0len15.0w
Scanner
Cube(double, double, double)
15.0widthheight
5
Rectangle(double, double)
3
10.0length
![Page 31: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/31.jpg)
Rectangle(double, double)
} // line 16 (Rectangle.java)
物件區
10.0len15.0w
Scanner
Cube(double, double, double)
15.0widthheight
5
Rectangle(double, double)
3
10.0length
Return to …
![Page 32: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/32.jpg)
height = h; // line 23 (Cube.java)
物件區Scanner
Cube(double, double, double)
15.0width12.0height
5
Rectangle(double, double)
3
10.0lengthCube(double, double, double)
10.0len15.0w
12.0h
![Page 33: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/33.jpg)
} // line 24 (Cube.java)
物件區Scanner
Cube(double, double, double)
15.0width12.0height
5
Rectangle(double, double)
3
10.0length
Return to …
Cube(double, double, double)
10.0len15.0w
12.0h
main
![Page 34: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/34.jpg)
main
Cube myCube = new Cube(length, width, height);
物件區
10.0length15.0width
12.0heightkeyboard
Scanner
Cube(double, double, double)
5
Rectangle(double, double)
3
myCube
15.0width12.0height
10.0length
![Page 35: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/35.jpg)
Do Checkpoints
• Checkpoint 10.4 (p. 663)
• Checkpoint 10.5
![Page 36: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/36.jpg)
10.3 OVERRIDING SUPERCLASS METHODS
GradedActivity.java( 課本 p. 645)CurvedActivity.java( 課本 p. 666)CurvedActivityDemo.java( 課本 p. 668)
![Page 37: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/37.jpg)
![Page 38: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/38.jpg)
Overriding
• 定義 (p. 664)
• Read CurvedActivity.java (p. 666)
– 調分活動– setScore(double) (#32)• 注意方法特徵• 比較父類別的 setScore(double) (p. 645)
• 方法覆蓋的要件 (p. 667)
– super. 父類別成員 (#35)• 請將本行改成 score = rawScore * percentage;• 編譯並觀察其結果
![Page 39: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/39.jpg)
Overriding
• Run & Read CurveActivityDemo.java (p. 668)
• See ppt. 40-48• 問題討論– 這個程式產生了幾個評分物件 ?– 每個評分物件中有幾個父類別所宣告的欄位 ?– 每個評分物件中有幾個子類別所宣告的欄位 ?– 請說明哪些方法將值設定於欄位中 ?
![Page 40: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/40.jpg)
main
CurvedActivity curvedExam = new CurvedActivity(curvePercent); //#29 (p. 668)
物件區
87.0score1.06curvePercent
keyboardcurvedExam
Scanner
CurvedActivity(doubl
e)
setScore(double)
scorerawScorepercentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
1.06
![Page 41: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/41.jpg)
CurvedActivity
percentage = percent; // #18 (p. 666)rawScore = 0.0;
物件區
1.06percent
Scanner
CurvedActivity(doubl
e)
setScore(double)
0.0score0.0rawScore
1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
Return to …
main
![Page 42: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/42.jpg)
main
CurvedActivity curvedExam = new CurvedActivity(curvePercent); //#29 (p. 668)
物件區
87.0score1.06curvePercent
keyboardcurvedExam
Scanner
CurvedActivity(doubl
e)
setScore(double)
0.0score0.0rawScore
1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
![Page 43: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/43.jpg)
main
curvedExam.setScore(score); //#32 (p. 668)
物件區
87.0score1.06curvePercent
keyboardcurvedExam
Scanner
CurvedActivity(doubl
e)
setScore(double)
0.0score0.0rawScore
1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
87.0
![Page 44: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/44.jpg)
setScore
rawScore = s; // #34 (p. 667)
物件區
87.0s
Scanner
CurvedActivity(doubl
e)
setScore(double)
0.0score87.0rawScore1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
![Page 45: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/45.jpg)
setScore
super.setScore(rawScore * percentage); // #35 (p. 667)
物件區
87.0s
Scanner
CurvedActivity(doubl
e)
setScore(double)
0.0score87.0rawScore1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
87.0*1.06
![Page 46: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/46.jpg)
setScore
score = s; // #16 (p. 645)}
物件區
92.22s
Scanner
CurvedActivity(doubl
e)
setScore(double)
92.22score87.0rawScore1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
Return to …
因為 Overriding 的關係子類別與父類別的 setScore 方法都有一個 double 參數
在此例中,參數名稱碰巧都叫做 s
![Page 47: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/47.jpg)
setScore
} // #36 執行結束 (p. 667)
物件區
87.0s
Scanner
CurvedActivity(doubl
e)
setScore(double)
92.22score87.0rawScore1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
Return to …
main
![Page 48: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/48.jpg)
main
//#32 執行結束 (p. 668)
物件區Scanner
CurvedActivity(doubl
e)
setScore(double)
92.22score87.0rawScore1.06percentage
getScore()getGrade()
getRawSCore()
getPercentage()
setScore(double)
87.0score1.06curvePercent
keyboardcurvedExam
![Page 49: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/49.jpg)
Overloading vs. Overriding
Overloading Overriding
發生於單一類別 OK Not OK
發生於繼承關係 OK OK
Run Lab10_5.java Compile Lab10_6.java
Overloading methods
Overriding methods
方法同名 Yes Yes
方法特徵相同 No Yes
![Page 50: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/50.jpg)
Overloading vs. Overriding
• Run ShowValueDemo.java (p. 671)
• Overloading 與 overriding 的基本原則– 課本 p. 670
• 避免被覆蓋 (p. 712)– Compile Lab10_7.java
![Page 51: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/51.jpg)
課堂實作• Open Labs\Family 資料夾• 請閱讀各程式
– Couple 類別:用來紀錄一對夫妻的資料– Family 類別:用來記錄一個家庭 ( 含一對夫妻 ) 的資料– FamilyDemo 類別:包含主程式
• 已知 FamilyDemo 可以正確執行,其執行結果如下頁– FamilyDemo 類別與 Couple 類別程式碼不可變動
• 現在需要你– 繼承 Couple 類別– 在 Family 類別的三的空格處填入程式碼
• 答案放在 Answers\Family
![Page 52: 10.1 WHAT IS INHERITANCE p. 643. Labrador Corgi](https://reader034.vdocument.in/reader034/viewer/2022051215/5697bfc61a28abf838ca766e/html5/thumbnails/52.jpg)
課堂實作