面向对象旅程及继承

面向对象(第一章)
1.1面对对象
对象的产生:首先在内存中分配空间,再初始化必须的附加成员,再调用构造函数执行初始化。
对象有类型:值类型(堆栈) 引用类型(托管堆)
对象有访问权限:Public(所有成员)   protected(派生类)  internal(同一程序集中)  private(私用,管好自己就可以了)
多态:
1.接口实现多态:定义一个接口IPeople,实现不同的方法Dowork().  IPeople PatHome=new PeopleAtHome();IPeolpe patSchool=new PeopleAtSchool();
 2.抽象类实现多态。
Gc垃圾回收机制:对象没有被应用程序引用就可以被回收。
对象就是生成在CLR环境中(类比人在社会中)
对象从出生到死亡的一个总过程。
 
1.2继承
  继承是类与类的一种关系。
  有版本问题一般定义为抽象类:动物--(鸡,鸭)(IS-A)
  不同种类同一样的行为,一般定义为 接口(CAN-DO)
继承的本质,还是要看对象创建的过程。
/// <summary>

    /// 动物抽象类

    /// </summary>

    public abstract class Animal

    {

        public abstract void ShowType();

        void Eat() {

            Console.WriteLine("All Animal always eat");

        }

    }

 

    /// <summary>

    /// 鸟类:实现动物类的方法

    /// </summary>

    public class Brid : Animal

    {

        private string type = "bird type";

        //重写

        public override void ShowType()

        {

          Console.WriteLine("Type is {0}",type);

        }

 

        private string color;

 

        public string Color

        {

            get { return color; }

            set { color = value; }

        }

    }

 

 

    public class Eadg:Brid,IFable

    {

        private string type = "Eadg";

        public override void ShowType()

        {

            Console.WriteLine("Type is {0}", type);

        }

        public void ShowColor()

        {

            Console.WriteLine("Color is {0}", Color);

        }

 

        public void Fly()

        {

            Console.WriteLine("我能飞啊");

        }

    }

 

    interface IFable

    {

        void Fly();

    }

 

定义一个动物抽象类,抽象方法和一个实现公用方法。
定义一个实现了抽象类的鸟类,实现抽象方法,并定义私用字段和公有属性。
定义一个具体 Eadg类,继承鸟类,并实现接口。
现在来看Eadg e=new Eadg();创建过程
Eadg e创建了一个Eadg类的引用,new Eadg()创建对象,
1.先创建字段,从父类开始,父类私用,公用字段在上,子类在下,如果有同名的则重命名。
2.再创建方法表,方法和字段的创建过程一样。方法表是在类第一次加载的时候就创建了,之后用TypeHandle指向方法表。
Brid b=new Eadg();
引用类型决定在对象在方法表中的访问权限。
 b.Type 关注就近原则。
看到37页
 

转载于:https://www.cnblogs.com/netlove/p/3356600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值