• C#基础|面向对象之继承


     
    面向对象的世界

    在现实的世界里,发现事物可以进行分类,并且各个分类中又有这关系。
    在面向对象的世界里,人们用类来模拟现实世界中的各种关系。
    从大的范围来说,人属于人类,如果按照不同的身份将人类进行划分,又可以分为老师,医生,律师,学生等等。。。
    如果要用编程来描述学生和老师这两种不同的身份
    想到学生这种身份会有,学校,班级,成绩等特有的属性,当然还有作为人类共有的一些东西,比如,姓名,年龄,性别等。
    作为老师这种身份会有,工资等特有的属性,也有一些和学生共同的东西,比如,姓名,年龄,性别等。
    现在要编程描述学生和老师这两种身份,为了简便只讨论他们的一些属性
     
    //学生类
    class Student
    {
    //姓名属性
    public string name
    {
    get;set;
    }
    public int age
    {
    get;set;
    }
    //分数属性,特有的
    public double score
    {
    get;set;
    }
    }
     
    //老师类
    class Teacher
    {
    //姓名属性
    public string name
    {
    get;set;
    }
    public int age
    {
    get;set;
    }
    //薪水属性,特有的
    public double salary
    {
    get;set;
    }
    }
    写完一看,学生类和老师类有代码重复的现象,这种事绝对不能忍。
     
    继承(发生在类与类之间的关系)

    将共有的属性,将其分离出来,单独写成一个类
    //人类
    class Person
    {
    //姓名属性
    public string name
    {
    get;set;
    }
    //年龄属性
    public int age
    {
    get;set;
    }
    }
     
    现在让Person类分别与Student类,Teacher类发生关系。
    //老师类
    class Teacher: Person
    {
    public double salary
    {
    get;set;
    }
    }
    上述代码,Teacher类的姓名、年龄属性将从Person获得,将这种行为称为继承。
    Student继承Person类代码省略。
     
    继承中的构造函数

     
    //person类
    class Person
    {
    //name属性
    public string name
    {
    get;set;
    }
    //age属性
    public int age
    {
    get;set;
    }
    Person(string _name,string _age)
    {
    this.name = _name;
    this.age = _age;
    }
    }
    //Student类继承自Person类
    class Student : Person
    {
    public int score
    {
    get;set;
    }
    Person(string _name,string _age, string _score)
    {
    this.name = _name;
    this.age = _age;
    this.score = _score;
    }
    }
    上述代码将会报错
     
    利用base关键字调用父类构造函数

    将student类改成如下形式
    class Student : Person
    {
    public int score
    {
    get;set;
    }
    //你用base关键字调用父类中的构造函数
    Person(string _name,string _age, string _score) : base(_name, _age)
    {
    this.score = _score;
    }
    }
     
    继承中的术语

    父类:上面的例子中person就是父类。你也可以说是基类
    子类:上面的例子中student,teacher就是子类,从person类派生而来。你也可以说是派生类
    单根性:继承具有单根性,指一个类只能继承一个类。
    传递性:A继承了B,B继承了C,C的属性和方法,在A中也得到继承了。
    结束语

     
    写这篇随笔的目的是出于锻炼自己的表达能力和思维逻辑能力的,若给你后面的学习带来误解请谅解。
     
    感谢博客园
    感谢黑马训练营
    2014/1/16 晚7点
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/icez/p/3528662.html
Copyright © 2020-2023  润新知