c# .net 面向对象--- 继承

以前有过接触面向对象  只知道 面向对象的三大特性是

  • 封装
  • 继承
  • 多态
然后看了很多 估计是我太笨了 没有看懂 今天多看了一会 也写了代码 大家可以看下我总结的

我理解的继承 简单来说

就是总结出来所有的类的特性,比如有两个类 一个是司机类 一个是清洁工类  这两个类都会有相同的特性 比如都有 姓名 年龄 性别  

这样就可以提出来作为父类  这个类叫做人类 都有着相同的特性和方法。下面有更详细的代码 大家可以看下


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _3._7面向对象
{
    class Program
    {
        static void Main(string[] args)
        {

            //driver d = new driver("诸葛亮",20,true,13);
        }

        //父类  人类
        public class people
        {
            //姓名
            private string name;

            public string Name
            {
                get { return name; }
                set { name = value; }
            }
            //年龄
            private int age;

            public int Age
            {
                get { return age; }
                set { age = value; }
            }
            //性别
            private bool gender;

            public bool Gender
            {
                get { return gender; }
                set { gender = value; }
            }
            //构造函数
            public people(string name, int age, bool gender)
            {
                this.Name = name;
                this.Age = age;
                this.Gender = gender;
            }
            
           
            //方法 吃喝拉撒
            public void Chls()
            {
                Console.WriteLine("人会吃喝拉撒睡");
            }
            
        }
        //子类 司机类
        public class driver:people//继承父类 people
        {
            //车牌
            private int id;
            public int Id
            {
                get { return id; }
                set { id = value; }
            }
            //
            public driver(string name, int age, bool gender,int id)
                : base(name, age, gender)
            {
                this.Id = id;
            }
           
           
            public void GoCar()
            {
                //Console.WriteLine("司机开车");
                Console.WriteLine("");
            }

            
        }
        //子类 清洁工
        public class clear :people//继承了父类
        {
            //方法 清理房间
            public void ClearRoom()
            {
                Console.WriteLine("清洁工清理房间。");
            }
           
        }
    }
}


下面开始问题

  1. 什么时候要用继承呢
答:我们在一些类中,可能会写到重复的成员,我们把这些重复的成员单独封装到一个类中,
这个东西就叫做父类,对应的还有子类。   还有的叫做派生类,对应的就是基类、(这玩意就是封装。。。)
2. 子类继承了父类,那么子类从父类哪里继承了什么呢?

答:子类继承了父类,就继承了父类的方法和属性,但是没有继承父类的私有字段 就是带private的
3.  子类有没有继承父类的构造函数?(啥叫做构造函数---代码哪里有 其实我也是刚懂)
答:并没有继承父类的构造函数。
子类的构造函数会去调用父类的无参函数,但是子类会默认的调用父类无参函数的构造函数,创建父类对象,让子类可以使用父类中的成员。


4. 继承的特性?  据说这个面试的时候问的多一点

答:1)单根性:就是子类只能有一个父类。(简单来说 就是你只能有一个爹,干爹不算!只能是生你的爹)

2)传递性:可以使用父类的属性和方法。(简单来说 就是你爹的迟早是你的 你爷爷的迟早都是你爹的  不管啥 都是你的)


补充:

object是一切类的父类。

Copyright © 1999-2017.Dodlge






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值