首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

繼承中關於屬性的一些問題(二)

     編輯:關於C語言

屬性規則與方法類似。get 視為同修飾符、無參、返回屬性類型的方法;set 視為同修飾符、單 value 參、返回 void 的方法。沿用第十章客戶住宿例擴展:

using System;
public enum sex { woman, man }
abstract public class People {
    private string s_name;
    public virtual string Name { get { return s_name; } }
    private sex m_sex;
    public virtual sex Sex { get { return m_sex; } }
    protected string s_card;
    public abstract string Card { get; set; }
}

People 含唯讀虛屬性 Name/Sex、可讀寫抽象屬性 Card。含抽象成員故類須 abstract。派生類 Customer:

class Customer : People {
    string s_no; int i_day;
    public string No { get { return s_no; } set { if (s_no != value) s_no = value; } }
    public int Day { get { return i_day; } set { if (i_day != value) i_day = value; } }
    public override string Name { get { return base.Name; } }
    public override sex Sex { get { return base.Sex; } }
    public override string Card { get { return s_card; } set { s_card = value; } }
}

Customer 以 override 重寫三屬性,聲明與基類一致。Name/Sex 僅 get 用 base 調用基類;Card 完整實現 get/set 覆蓋抽象成員。Customer 無抽象成員故可非抽象。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved