继承,多态

继承格式 :
public(访问修饰符等)   +  class  +  类名   +  : +类名

一个类只能有一个父类(亲爹)

父类 也叫 某个类继承自某个类
子类  也叫 派生类  和 超类

多态:
类的多种形态

父类存在虚方法   virtual (虚化)

新建飞的类:
namespace 继承和多态
{
    class fly
    {
        public virtual string flying() {
            return "我会飞";
        }

    }
}

-------------------------------------------------------
子类重写         override  (重写)


新建小鸟类:
namespace 继承和多态
{
    class bird:fly   //调用
    {

        public override string flying()
        {
            //return base.flying();   默认的返回值是父类的方法
            //修改如下:
            return "拍拍翅膀就飞起来了";

        }

    }
}

新建飞机类:
namespace 继承和多态
{
    class plane:fly      //调用
    {

        public override string flying()
        {
            // return base.flying();   默认的返回值是父类的方法
            return "屁股一冒烟就飞了";
        }

    }
}






------------------------------------------------------

新建人类:
namespace 继承和多态
{
    class Ren
    {
        private string _name;
        public string name {
            get { return _name; }
            set { name = value; }
        }
        private string _sex;
        public string sex {
            get { return _sex; }
            set { _sex = value; }
        }
        private DateTime _birthday;
        public DateTime birthday {
            get { return _birthday; }
            set { _birthday = value; }
        }
        private string _nation;
        public string nation {
            get { return _nation; }
            set { _nation = value; }
        }
        
    }
}

新建学生类:
namespace 继承和多态
{
    class xuesheng:Ren
    {
        private decimal _score;
        public decimal score {
            get { return _score; }
            set { _score = value; }
        }
    }
}

新建老师类:
namespace 继承和多态
{
    class laoshi:Ren
    {
        private string _kecheng;
        public string kecheng
        {
            get {return _kecheng;}
            set { _kecheng = value; }

        }
    }
}


namespace 继承和多态
{
    class Program
    {
        static void Main(string[] args)
        {
            //对象实例化
            Ren r = new Ren();
            //都可以继承Ren的属性
            xuesheng xs = new xuesheng();
            xs.name = "";      
            //在其不同的类里添加不同的属性
            //每一个里都有其自己不同的属性
            xs.score = 100;
            ls.kecheng = "";
            


            //虚化:


            //创建fly
            fly f = new fly();
            //然后调出flying方法,返回的是一个字符串,直接打印出来
            f.flying();   //调用方法
            Console.WriteLine(f.flying());


            //实例化小鸟对象
            bird b = new bird();
            //也可以调用方法
            Console.WriteLine(b.flying());

            //实例化飞机
            plane p = new plane();
            //也可以调用方法
            Console.WriteLine(p.flying());

            Console.ReadLine();
        }
    }
}


-----------------------------------------------------
访问修饰符:
public      公共的,只要引用了命名空间就能用
            访问级别最高
private     私有的,只能在类的内部进行访问
            访问级别最低

internal    默认的,同一个命名空间下可以访问
            访问级别次最高
            
protected    被保护的,类的内部及它的子类中才可以访问
            访问级别次最低
原文地址:https://www.cnblogs.com/yunpeng521/p/7099762.html