C#基础之继承

继承是面向对象程序设计的重要概念之一,先对继承进行综述。

1.继承的作用:

1)继承允许我们根据一个类来定义另一个类;这使得创建维护应用程序变得更加容易,同事也更有利于重用代码和节省开发时间;

2)继承后子类(派生类)拥有父类(基类)的一切属性(属性、方法、事件);继承实现了更大规模(类级别)的代码复用。

2.父类和子类的构造过程:

1)构造派生类时会先构造基类;也就是说调用派生类构造函数时会先调用基类的构造函数;

2)可以使用base关键字调用基类的构造函数;

3)如果没有调用基类构造函数,将会隐式调用基类无参构造函数。

3.成员访问:

1)访问成员时只看变量的数据类型而不是看实例有没有这个成员;

2)如果先实例一个派生类,再赋值给基类,修改一个值时两个值都会改变,因为调用了同一个实例对象;

3)派生类中允许定义与父类同名的变量;

4)在类的内部可以用this和base区分访问的是当前类成员还是基类成员。

4.继承的转化:

1)派生类转化为基类(隐式转换)

2)基类转化为派生类(显式转换)

下面用简单的例子来了解继承,程序如下:

 class Human
    {
        public string name;
        public int age;
        public Human(string name, int age)
        {
            this.name = name;
            this.age = age;
            Console.WriteLine("我的名字是:{0}今年{1}岁。", name, age);
        }
        public Human()
        {
        }
        public void Eat()
        {
            Console.WriteLine("吃饭");
        }
    }
    class Woman : Human
    {
        public Woman()
        {
            //因为没有参数会默认调用基类无参构造函数
            Console.WriteLine("派生类Woman构造函数");
        }
        public void Shopping()
        {
            Console.WriteLine("我擅长购物");
        }
    }
    class Man : Human
    {
        public Man(string name, int age) : base(name, age)
        {
            //调用基类的构造函数
            Console.WriteLine("派生类Man构造函数");
        }
        public void Programming()
        {
            Console.WriteLine("我擅长写代码");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //转换
            Human human1 = new Human();//调用无参构造函数
            Human human2 = new Man("Jack", 18);//隐式转换
            human2.Eat();
            Woman woman = human1 as Woman;//调用无参构造函数
            Man man = new Man("Dave", 20);
            man.Eat();
            Console.ReadKey();
        }
    }

5.继承特性总结:

1)继承可以通过base访问父类内容,用this和base可以区分派生类和基类重名的变量或者方法;

2)如果基类派生类有相同的方法,实例的是谁就会调用那个类中的方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值