Board logo

標題: 繼承 (一) [打印本頁]

作者: 李泳霖    時間: 2024-1-15 19:04     標題: 繼承 (一)

所謂繼承(Inheritance)是一種類別之間的關係,可以利用現有類別衍生出新的類別,新的類別可以與現有類別分享共同的屬性、方法與資料結構等,在物件導向程式設計中利用繼承,可以達到程式碼重複使用的優點。

繼承功能可以在建立新類別時,修改、添加或繼承現有類別的定義。建立一種類別後,如果須要再建立許多大同小異的類別,就可以利用繼承特性,分別繼承這個現有的類別,並且將差異部分加以修改或添加。

被繼承的類別稱為父類別或基礎類別(Base Class),而經由繼承產生的類別,則稱為子類別或衍生類別(Derived Class),子類別不僅可以繼承父類別的特性(屬性與方法),也可以修改或添加特性。

C++支援多重繼承(一個類別擁有多個父類別),但Java不直接支援多重繼承,類似的機制則必須透過介面來完成。

歸納上述,關於繼承的四大特性如下:

1.子類別可以繼承父類別的特性。
2.子類別可以添加新的特性。
3.子類別可以修改並重新定義自父類別繼承下來的特性。
4.子類別繼承父類別時,不需要複製父類別的程式碼,造成程式碼重複。




  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;

  6. namespace ConsoleApp1
  7. {
  8.     class Student : Person
  9.     {
  10.         public string school;
  11.         public Student(string name,int age,string school)
  12.         {
  13.             this.name = name;
  14.             this.age = age;
  15.             this.school = school;
  16.         }
  17.         public void PringSchool()
  18.         {
  19.             Console.WriteLine(this.school);
  20.         }
  21.     }
  22. }
複製代碼
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;

  6. namespace ConsoleApp1
  7. {
  8.     class Person
  9.     {
  10.         public string name;
  11.         public int age;
  12.         public void PrintAge()
  13.         {
  14.             Console.WriteLine(this.age);
  15.         }
  16.         public void PrintName()
  17.         {
  18.             Console.WriteLine(this.name);
  19.         }
  20.     }
  21. }
複製代碼
  1. using ConsoleApp1;
  2. using System;
  3. using System.Linq.Expressions;

  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         Student s1 = new Student("Leo", 10, "小白國小");
  9.         Console.WriteLine(s1.name);
  10.     }
  11. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2