美文网首页C#
面向对象(五)-面向对象三大特性之继承

面向对象(五)-面向对象三大特性之继承

作者: 元宇宙协会 | 来源:发表于2017-11-19 12:33 被阅读41次
    面向对象的三大特性
    • 封装
    • 继承
    • 多态

    1.封装

    之前学习的构造函数与set、get访问器函数都是在进行封装。我们在类中声明的函数方法也都是在进行一些功能的整合。这些就是封装。


    2. 继承

    继承(加上封装和多态性)是面向对象的编程的三个主要特性(也称为“支柱”)之一。 继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。
    其成员被继承的类称为“基类”,继承这些成员的类称为“派生类”。 派生类只能有一个直接基类。 但是,继承是可传递的。 如果 ClassB 派生出 ClassC,ClassA 派生出 ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员。

    思考

    题目一:

    老师、学生的类。
    老师有名字、性别、年龄、所带班级、教的科目, 老师可以教学生学习,老师可以用电脑, 老师可以吃饭。
    学生有名字、性别、年龄、所在班级,学生可以学习,还可以用电脑,还可以吃饭。
    

    思路:

    在看这道题的时候,首先先看共同的属性,可不可以抽出一个基类,然后再去继承这个基类。
    1. 显而易见,我们可以定义一个Person类,具有名字、性别、年龄这些字段,还有吃饭、用电脑这两个方法。
    2. 老师的类继承自Person类,只需要添加教的科目、所带的班级的字段,和教学生的方法。
    3. 学生继承自Person类,只需要添加一个所在班级的字段,和学习的方法。
    

    代码上手 :

    • 基类
    namespace 继承
    {
        enum gender
        {
            boy,
            girl
        }
        class Person  
        {
            public string name;
            public int age;
            public gender gender;
    
            public void eat()
            {
                Console.WriteLine("我在吃东西");
            }
    
            public void playComputer()
            {
                Console.WriteLine("我在用电脑");
            }
        }
    }
    
    
    • 老师类
    namespace 继承
    {
        class Teacher : Person
        {
            public string className;
            public string subjectName;
    
            public void teach()
            {
                Console.WriteLine("教学生学习");
            }
        }
    }
    
    
    • 学生类
    namespace 继承
    {
        class Student : Person
        {
            public string inClassName;
    
            public void learn()
            {
                Console.WriteLine("学生正在学习");
            }
        }
    }
    

    3.多态

    派生类中详细解释,看下一篇博客即可知晓

    相关文章

      网友评论

        本文标题:面向对象(五)-面向对象三大特性之继承

        本文链接:https://www.haomeiwen.com/subject/lfbuvxtx.html