Unity3D開發(fā)-C#語(yǔ)言進(jìn)階篇(面向?qū)ο笾鄳B(tài)-抽象應(yīng)用詳解)

 class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("---------------------第一題-----------------------------");
            //  1、自己定義抽象類Animal, 抽象出幾個(gè)抽象方法,
            //再定義一個(gè)DOG類,去繼承抽象類Animal,
            //需要重寫抽象類中的抽象方法,寫出測(cè)試案例; 

            Animal ani = new Dog();
            ani.Eat();

            Dog dog = new Dog();
            dog.Eat();

            Console.WriteLine("---------------------第二題-----------------------------");
            // 2、創(chuàng)建一個(gè)Vehicle類并將它聲明為抽象類。
            //在Vehicle類中聲明一個(gè)NoOfWheels方法,使它返回一個(gè)字符串值。
            //創(chuàng)建兩個(gè)類Car和Motorbike從Vehicle類繼承,并在這兩個(gè)類中實(shí)現(xiàn)NoOfWheels方法。
            //在Car類中,應(yīng)當(dāng)顯示“四輪車”信息;
            //而在Motorbike類中,應(yīng)當(dāng)顯示“雙輪車”信息。
            //創(chuàng)建另一個(gè)帶Main方法的類,在該類中創(chuàng)建Car和Motorbike的實(shí)例,并在控制臺(tái)中顯示消息
            Car car = new Car();
            MotoBike moto = new MotoBike();
            Console.WriteLine("---------------------第三題-----------------------------");
            //3、某學(xué)校對(duì)教師每月工資的計(jì)算公式如下:固定工資 + 課時(shí)補(bǔ)貼。
            //專家級(jí)講師的的固定工資為25000元,每個(gè)課時(shí)補(bǔ)貼60元;
            //高級(jí)講師的固定工資為18000元,每個(gè)課時(shí)補(bǔ)貼50元; 
            //普通講師的固定工資為12000元,每個(gè)課時(shí)補(bǔ)貼40元。
            //定義教師抽象類,派生不同職稱的教師類,編寫程序求若干教師的月工資
            Teacher zj = new ZhuangjiaTeacher(10);//參數(shù)為總課時(shí)補(bǔ)貼
            Teacher gj = new GaojiTeacher(9);
            Teacher pt = new PutongTeacher(8);
            Console.ReadKey();

        }
    }
 abstract  class Animal
    {
        public abstract void Eat();

        public abstract void Drink();

        public abstract void La();

        public abstract void Sa();
    }
  class Car:Vehicle
    {
        public Car()
        {


            Console.WriteLine("Car 是:{0}", this.NoOfWheels());
        }
        public override string NoOfWheels()
        {
            this.Str = "四輪車";
            return Str;
        }
    }
 class Dog:Animal
    {
        public override void Drink()
        {
            Console.WriteLine("吃!");
        }

        public override void Eat()
        {
            Console.WriteLine("喝!");
        }

        public override void La()
        {
            Console.WriteLine("辣!");
        }

        public override void Sa()
        {
            Console.WriteLine("撒!");
        }
    }
class GaojiTeacher:Teacher
    {
        public GaojiTeacher(int i)
        {
            this.Gongzi = 18000;
            this.Butie = 50 * i;
            this.Salary();

        }


        public override void Salary()
        {
            Console.WriteLine("高級(jí)講師的固定工資是:{0} 課時(shí)補(bǔ)貼是:{1} 總工資是:{2}", this.Gongzi, this.Butie, this.Gongzi + this.Butie);
        }
    }
 class MotoBike:Vehicle
    {
          public MotoBike() {
          
            Console.WriteLine("MotorBike 是:{0}",this.NoOfWheels());
        }
        public override string NoOfWheels()
        {
            this.Str = "兩輪車";
            return Str;
        }
    }
  class PutongTeacher:Teacher
    {
        public PutongTeacher(int i)
        {
            this.Gongzi = 12000;
            this.Butie = 40 * i;
            this.Salary();

        }
        public override void Salary()
        {
            Console.WriteLine("普通講師的固定工資是:{0} 課時(shí)補(bǔ)貼是:{1} 總工資是:{2}", this.Gongzi, this.Butie, this.Gongzi + this.Butie);
        }
    }
abstract class Teacher
    {
        private int gongzi;//工資
        private int butie;//補(bǔ)貼

        public int Gongzi {
            set { gongzi = value; }
            get { return gongzi; }
        }

        public int Butie
        {
            get
            {
                return butie;
            }

            set
            {
                butie = value;
            }
        }

        public abstract void Salary();
   
    }
abstract  class Vehicle
    {
        private string str;

        public string Str
        {
            get { return str; }
            set { str = value; }
        }

        public abstract string NoOfWheels();
    }
  class ZhuangjiaTeacher:Teacher
    {
        public ZhuangjiaTeacher(int i) {
            this.Gongzi = 25000;
            this.Butie = 60*i;
            this.Salary();

        }
        public override void Salary()
        {
            Console.WriteLine("專家講師的固定工資是:{0} 課時(shí)補(bǔ)貼是:{1} 總工資是:{2}", this.Gongzi,this.Butie,this.Gongzi+this.Butie);
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容