zoukankan      html  css  js  c++  java
  • 继承

    5、继承
    我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类。
    student teacher driver 子类 派生类
    person 父类 基类

    子类继承了父类,那么子类从父类那里继承了什么?
    首先:子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。
    问题:子类有没有继承父类的构造函数?
    答:子类并没有继承父类的构造函数,但是,子类会默认的调用父类的无参数的构造函数,创建父类对象,让子类可以使用父类中的成员。
    所以,如果父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,子类就调用不到了,所以子类会报错。
    解决办法:
    1)在父类中重新写一个无参数的构造函数。
    2)在子类中显示的调用父类的构造函数,使用关键字:base()

    6、继承的特性
    1)继承的单根性:一个子类只能有一个父类。
    2)继承的传递性

    7、查看类图

    8、object是所有类的基类
    public class Person
    {
    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 char _gender;
    public char Gender
    {
    get{return _gender;}
    set{_gender=value;}
    }
    public Persion(string name,int age,char gender)
    {
    this.Name=name;
    this.Age=age;
    this.Gender=gender;
    }
    }
    public class Reporter:Person
    {
    private string _hobby;
    public string Hobby
    {
    get{return _hobby;}
    set{_hobby=value;}
    }
    public void ReporterSayHello()
    {
    Console.WriteLine("我叫{0},我是一名狗仔,我的爱好是{1},我是{2}生,我今年{3}岁。"this.Name,this.Hobby,this.Gender,this.Age);
    }

    public Reporter(string name,int age,char gender,string hobby):base(name,age,gender)
    {
    this.Hobby=hobby;
    }
    }

    Peporter rep=new Reporter("狗仔",34,‘男’,3);
    rep.ReporterSayHello();

    10、new关键字
    1)创建对象
    2)隐藏从父类那里继承过来的同名成员。
    隐藏的后果就是子类调用不到父类的成员。

  • 相关阅读:
    每日日报31
    每日日报30
    每日日报29
    《精益软件开发管理之道》阅读笔记03
    每日日报28
    ip地址访问vue项目
    eslint prettier vetur eslint
    线上环境去除console
    vue 多环境打包
    2申请高德地图key 初始化地图
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/4127414.html
Copyright © 2011-2022 走看看