Csharp多态的实现(抽象类)

1.什么是抽象类

抽象类是虚拟的类,不能创建对象,用abstract修饰,在子类中用override进行重写

抽象类中可以存放抽象方法,属性,也可以存放非抽象方法,属性(这个在下面的代码可以看出来的)

非抽象类中只能存放非抽象的方法(这个可以在下面的代码中可以看出类)

如果子类也是抽象类,那么父类中所有的抽象方法,属性不必全部实现; 如果子类不是抽象类,那么父类中所有的抽象方法,属性必须全部实现(如果不实现会报错,这个也可以观察出来)

2.下面来看一下代码的实现,来点干的

//先定义一个Car父类
abstract class  Car
    {
        private string _name;//用private修饰的,只能在父类中使用
        public  string name//可以再子类中继承使用
        {
            get
            {
                return _name; 
            }
            set
            {
                _name = value;
            }
        }
        public abstract void say();//抽象方法,必须在子类中重写
        public  void start()//可以再子类中继承使用
        {
            Console.WriteLine("我是一辆车,我现在启动了");
        }
      }

//定义一个Benz类,继承Car
  class Benz:Car
    {
        public override  void say()//在子类中重写
        {
            Console.WriteLine("我是大奔,我叫{0}",name);
        }   
    }

//定义一个BMW类,继承Car
 class BMW:Car
    {
        public override void say()//在子类中重写
        {
            Console.WriteLine("我是宝马,我叫{0}",name);
        }
    }

3.如果使用多态   

定义一个父类的变量 Car b = new Benz();
b = new BMW();

先装的是奔驰类,后来装的是宝马类,装那个类,表现出那个类的特征,这就是多态

3.1  一个父类可以装不同的子类,从而实现不同的形态

3.2  当一个父类被多个类继承的时候,子类中的方法很多,而父类中的方法无法确定的时候,在父类定义个抽象方法,然后在子类中实现就可以了,在使用多态的时候,也可以直接使用

 

Csharp多态的实现概述

posted @ 2015-11-12 10:54  狂奔的老鳖  阅读(3238)  评论(0编辑  收藏  举报