zoukankan      html  css  js  c++  java
  • 继承和多态

    一.继承概述

      1.什么是继承:

      如果类A继承自类B,类B又继承类C,那么根继承的传递性类A也可以具备类C的属性和方法

      我们需要注意的是,如果一个类我们眼睛去看的时候没有继承任何类,那么默认继承object

      2.如何避免这种冗余

      创建一个新的Employee,将PM类和SE类中的公共属性都提取出来放在这个类中

      删除PM和SE类中的公共部分,保留他们各自独有的成员

      编写代码验证是否成功复用代码,PM类和SE类还能否提取出来的属性

    二.继承的概念

      继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用已存在的类的功能

      继承:在C#中,类可以继承自另一个类

         衍生的类(子类)继承父类的方法和数据成员

        语法:

          class 子类:父类

            {

                }

        父类叫基类   子类叫派生类

    三.关键字base的作用

      可以调用父类的属性,也可以调用自身的属性

    四.子类的构造函数

    1.继承机制很好的解决了代码复用的问题

    2.子类继承父类的成员,并且可以拥有自己特有的成员

    3.base关键字可以调用父类的属性,方法和构造函数

    4.在子类中,如果不使用base关键字来显示调用基类的构造函数则将隐式调用默认的构造函数

    5.protected访问修饰符修饰的成员允许被子类访问

    五.继承的作用

      1.继承的特性

        C#中还有一个特殊的关键字sealed,用它修饰的类是不能被继承的,我们称这种类为密封类

        (常用的string就是密封类)

      2.继承的价值

        继承模拟了现实世界的关系,OOP中强调一切皆对象,这符合我们面向对象编程的思考方向

        继承实现了代码重用,这在示例中我们已经有所体会,合理的使用继承可以使代码更简洁

        继承使得程序建构清晰,子类和父类的层次结构清晰,最终的目的是使子类只关注子类的相关行为和状态,无须关注父类的行为和状态

    六.实现多态

      1.实现方法重写

        父类定义sayhi()方法,用virtual关键字定义为虚方法

        在子类中定义子类自己的sayhi()方法,用override关键字修饰,就实现了对父类sayhi()方法的重写

      2.定义父类变量,用子类对象初始化父类变量,如:

        Employee ema=new SE("210","Ema",33);

  • 相关阅读:
    python中的线程(zz)
    Bzoj1014 外星人Prefix
    ABC
    终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
    我去面试没带简历,你让我走人?
    利用Python框架pyxxnet_project实现的网络服务
    我以为我对Mysql索引很了解,直到我遇到了阿里的面试官
    CSS必备知识大全
    致 Python 初学者
    从入门到精通,Java学习路线导航
  • 原文地址:https://www.cnblogs.com/fkx1/p/8284338.html
Copyright © 2011-2022 走看看