第二十节 继承

View Code
案例1:继承

namespace e1
{
    public enum Genders
    { 
        Male,Female
    }

    class Person
    {
        private string name;
        public string Name
        {
            set { name = value; }
            get { return name; }
        }

        private int age;
        public int Age
        {
            set { age = value; }
            get { return age; }
        
        }
    
        private Genders gender;
        public Genders Gender
        {
            set { gender = value; }
            get { return gender; }
        }

        
    }
}

——————————————————————————————————————————————————————

namespace e1
{
    //C#中继承使用“:”,一旦继承自一个类后意味着当前就拥有了父类的公开成员
    class Student:Person
    {
        //因为继承了父类一些共性的特征和行为,在子类中我们只需编写子类特有的状态和行为即可!

        private String hobby;
        public string Hobby
        {
            set { hobby = value; }
            get { return hobby; }
        }

        private int popularity;
        public int Popularity
        {
            set { popularity = value; }
            get { return popularity; }
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",Name,Age,Gender,Hobby,Popularity);
        }
    }
}

——————————————————————————————————————————

namespace e1
{
    class Teacher:Person
    {
        private decimal salary;
        public decimal Salary
        {
            set { salary = value; }
            get { return salary; }
        }

        private int serviceOfYear;
        public int ServiceOfYear
        {
            set { serviceOfYear = value; }
            get { return serviceOfYear; }
        }
        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},薪水:{3},工作年限:{4}",Name,Age,Gender,Salary,ServiceOfYear);
        }
    }
}

——————————————————————————————————————————————————————

namespace e1
{
    class Adviser:Person
    {
        private string duty;
        public string Duty
        {
            set { duty = value; }
            get { return duty; }
        }
        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},职责:{3}",Name,Age,Gender, Duty);
        }
    }
}

————————————————————————————————————————————————————————

namespace e1
{
    /// <summary>
    /// 继承
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Student stu = new Student();
            stu.Name = "张见见";
            stu.Age = 20;
            stu.Gender = Genders.Male;
            stu.Hobby = "唱个歌";
            stu.Popularity = 101;
            stu.SayHi();

            Teacher tea = new Teacher();
            tea.Name = "周老师";
            tea.Age = 25;
            tea.Gender = Genders.Female;
            tea.Salary = 5000;
            tea.ServiceOfYear = 10;
            tea.SayHi();

            Adviser ads = new Adviser();
            ads.Name = "龙龙";
            ads.Age = 35;
            ads.Gender = Genders.Female;
            ads.Duty = "心里指导师";
            ads.SayHi();

            Console.ReadKey();
        }
    }
}


————————————————————————————————————————————————————————————————————————————————————————

案例2:

namespace e3
{
    class Vertebrata
    {
        private double bodyWeight;
        public double BodyWeight
        {
            set { bodyWeight = value; }
            get { return bodyWeight; }
        }
        private double bodyTemparature;
        public double BodyTemparature
        {
            set { bodyTemparature = value; }
            get { return bodyTemparature; }
        }
        public Vertebrata()
        {
            this.bodyTemparature = 50.3;
            this.bodyWeight = 300;
        }

        public void Breathe()
        {
            Console.WriteLine("呼吸");
        }

        public void Eat()
        {
            Console.WriteLine("进食");
        }
        public void Sleep()
        {
            Console.WriteLine("睡觉");
        }
    }
}


——————————————————————————————————————————

namespace e3
{
    class Manmal:Vertebrata
    {
        private string skin;
        public string Skin
        {
            set { skin = value; }
            get { return skin; }
        }
        public Manmal()
        {
            this.skin = "毛皮";
        }
        public void Run()
        {
            Console.WriteLine("奔跑");
        }

        public void Sukle()
        {
            Console.WriteLine("哺乳");
        }
    }
}

————————————————————————————————————————————

namespace e3
{
    class Human :Manmal
    {
        private string limbs;
        public string Limbs
        {
            set { limbs = value; }
            get { return limbs; }
        }

        public Human()
        {
             this.Skin = "皮肤和头发";
            this.Limbs = "双手和双脚";
        }
        public void Study()
        {
            Console.WriteLine("学习");
        }

        public void Work()
        {
            Console.WriteLine("工作");
        }
    }
}

——————————————————————————————————————————————

namespace e3
{
    class Program
    {
        static void Main(string[] args)
        {
            Manmal beast = new Manmal();
            //从父类继承来的属性
            Console.WriteLine("我是一只野兽!");
            Console.WriteLine("我的体温为:{0}",beast.BodyTemparature);
            Console.WriteLine("我的体重为:{0}",beast.BodyWeight);
            
            Console.WriteLine("我有:");
            //子类自己定意义的属性
            Console.WriteLine(beast.Skin+"\n\n");
            Console.WriteLine("我会:");
            //从父类继承来的方法
            beast.Breathe();
            beast.Eat();
            beast.Sleep();
            //子类自己定义的方法
            beast.Run();
            beast.Sukle();

            Human hm = new Human();
            Console.WriteLine("我是一个人类!");
            Console.WriteLine("我有:");

            Console.WriteLine(hm.Skin);
            Console.WriteLine(hm.Limbs+"\n\n");
            Console.WriteLine("我会:");
            hm.Breathe();
            beast.Eat();
            beast.Sleep();
            beast.Run();
            beast.Sukle();
            hm.Study();
            hm.Work();


            Console.ReadKey();

        }
    }
}


——————————————————————————————————————————————————————————————————————————————————————————————

案例三

namespace e4
{
    public enum Genders
    { 
        Male,Female
    }

    class Person
    {

        public Person(string name, int age, Genders gender)
        {
            this.Name = name;
            this.Age = age;
            this.Gender = gender;
        }
        private string name;
        public string Name
        {
            set { name = value; }
            get { return name; }
        }

        private int age;
        public int Age
        {
            set { age = value; }
            get { return age; }       
        }    
        private Genders gender;
        public Genders Gender
        {
            set { gender = value; }
            get { return gender; }
        }     
    }
}

————————————————————————————————————————————

namespace e4
{
    //C#中继承使用“:”,一旦继承自一个类后意味着当前就拥有了父类的公开成员
    class Student:Person
    {
        //因为继承了父类一些共性的特征和行为,在子类中我们只需编写子类特有的状态和行为即可!

        private String hobby;
        public string Hobby
        {
            set { hobby = value; }
            get { return hobby; }
        }

        private int popularity;
        public int Popularity
        {
            set { popularity = value; }
            get { return popularity; }
        }

        public Student(string name, int age, Genders gender, string hobby, int popularity)
            :base(name,age,gender)//base关键字的运用  继承
        {  
            this.Hobby = hobby;
            this.Popularity = popularity;
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",Name,Age,Gender,Hobby,Popularity);
        }
    }
}


——————————————————————————————————————————

namespace e4
{
    class Teacher:Person
    {
        private decimal salary;
        public decimal Salary
        {
            set { salary = value; }
            get { return salary; }
        }

        private int serviceOfYear;
        public int ServiceOfYear
        {
            set { serviceOfYear = value; }
            get { return serviceOfYear; }
        }

        public Teacher(string name, int age, Genders gender, decimal salary, int serviceOfYear)
            : base(name, age, gender)
        {
            this.Salary = salary;
            this.serviceOfYear = serviceOfYear;
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},薪水:{3},工作年限:{4}",Name,Age,Gender,Salary,ServiceOfYear);
        }
    }
}

——————————————————————————————————————

namespace e4
{
    /// <summary>
    /// base 关键字的运用!
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            //base关键字就是父类,可以调用父类的成员和构造方法!
            Student stu = new Student("张三", 18, Genders.Female, "桌球", 101);
            stu.SayHi();
            Teacher tea = new Teacher("李四", 35, Genders.Male, 5000, 5);
            tea.SayHi();
            Console.ReadKey();

        }
    }
}

 

posted @ 2012-06-20 21:15  ComBat  阅读(131)  评论(0编辑  收藏  举报