zoukankan      html  css  js  c++  java
  • 20150429 C#面向对象 继承与多态

    继承
    一、什么继承?
    1.父类的相关成员,会自动派生到子类去。public protected
    2.子类可以扩展父类的相关成员。
    3.子类可以替代父类来使用,但父类不能替代子类来使用。
    二、继承的语法:
    class 子类名:父类名
    {

    }
    三、继承的规则:
    (一)成员变量的继承
    1.public protected
    2.如果同名就隐藏。子类与父类各自用各自的成员。
    (二)属性的继承
    1.属性一般只有public
    2.如果同名就隐藏。子类与父类各自用各自的成员。
    (三)方法的继承
    1.public protected
    2.如果同名就隐藏。子类与父类各自用各自的成员。
    3.重写:
    a.把父类的方法设为虚方法,virtual。——父类说:这个方法可以被重写。
    b.在子类中,使用override来重写父类中的方法。——子类确认我重写这个方法。

    注意: 1.如果父类方法中没有声明virtual,子类中有override重写它。会报错。
    2.如果父类中声明了virtual,子类中没有override去重写它,不会报错,但会被隐藏。
    3.虚方法一虚到底。子类即使override父类的虚方法,子类的这个方法依然还是虚方法。

    (四)构造函数的继承
    1.如果父类没有写构造函数,或者父类构造函数没有参数。子类的构造函数没有特殊要求。
    2.如果父类的构造函数都有参数,子类构造函数必须向父类构造函数中传递值。base();

    注:在子类中调用父类的方法时,可以使用base.xxxx来调用。一般用调用父类被重写的方法。

    base--父类对象。
    this--当前对象。


    多态:不是一个新东西。在继承的基础上实现出来的。
    多态的实现是:父类的引用指向子类的实例。当指向不同子类的时候,父类引用调用子类方法的时候,呈现出不同的形态。

  • 相关阅读:
    sprint2第五天任务完成情况
    sprint2第四天任务完成情况
    sprint2第三天任务完成情况
    spark编程基础1
    git基本命令
    自定义bean对象实现序列化接口(Writable)
    HDFS 2.X新特性
    win10-idea连接hdfs集群
    centos6-yum源失效问题
    hadoop-源码编译
  • 原文地址:https://www.cnblogs.com/m123/p/4465519.html
Copyright © 2011-2022 走看看