zoukankan      html  css  js  c++  java
  • 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点
  • 相关阅读:
    JavaWeb之Ajax快速入门(十九)
    JavaWeb之文件上传与下载&邮件技术(十八)
    JavaWeb之Filter快速入门(十七)
    JavaWeb之JDBC分页/监听器(十六)
    JavaWeb之JDBC&自定义框架/DBUtil(十五)
    JavaWeb之JDBC(十四)
    JavaWeb之JDBC学习(十三)
    JavaWeb之Mysql代码练习(十二)
    [ 校内OJ ] NOIP2019模拟赛(五)
    【一本通】欧拉回路
  • 原文地址:https://www.cnblogs.com/icez/p/3528662.html
Copyright © 2011-2022 走看看