顧客類的派生(C#程式碼)

林深見鹿zl發表於2020-11-26

顧客類的派生

1.任務描述
顧客分為普通顧客和VIP顧客兩種,普通顧客只儲存姓名,VIP顧客還儲存VIP卡號,從普通顧客中派生出VIP類。
2.任務要求
(1)普通顧客類中定義一個帶引數的建構函式實現顧客姓名的初始化,再定義一個輸出顧客資訊的方法。
(2)VIP顧客類的建構函式繼承父類的建構函式,完成姓名和VIP卡號的初始化;輸出顧客資訊的方法中姓名資訊的輸出呼叫父類的輸出方法。
(3)為VIP顧客類再定義一個只有姓名引數的建構函式,VIP卡號取預設值none,通過(2)中的建構函式來實現。
3.知識點提示
本任務主要用到以下知識點。
(1)類的定義及使用。
(2)類帶引數的建構函式的繼承。
(3)方法的覆蓋與過載。
(4)派生類呼叫基類中的方法。
(5)同一個類中利用已有的建構函式再去建立建構函式的參考示例如下。
public VIPCustomer(string name,string vipNo) {實現程式碼}
public VIPCustomer(string name):this(name,“none”) {}

廢話不多說 上程式碼

using System;

namespace SX_51
{
    public class Customer {
        private string name;
        public Customer(string name) {
            this.name = name;
        }
        public void ct()
        {
            Console.WriteLine("顧客姓名為:{0}",name);
        }
    }
    public class VIPCustomer : Customer {
        private string name;
        private string id;

        public VIPCustomer(string name, string id):base(name)
        {
            this.name = name;
            this.id = id;
        }
        public void ct()
        {
            base.ct();
        }
        public void cc() {
            Console.WriteLine("顧客卡號為:{0}",id);
        }
        public VIPCustomer(string name) : this(name, "none") { }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Customer a = new Customer("王三");
            VIPCustomer b = new VIPCustomer("李四","10010");
            VIPCustomer c = new VIPCustomer("趙五");
            a.ct();
            b.ct();
            b.cc();
            c.ct();
            c.cc();
        }
    }
}

相關文章