码迷,mamicode.com
首页 > 其他好文 > 详细

Csharp多态的实现(抽象类)

时间:2015-11-12 11:23:04      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:

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多态的实现概述

Csharp多态的实现(抽象类)

标签:

原文地址:http://www.cnblogs.com/ZhiXing-Blogs/p/4958285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!