zoukankan      html  css  js  c++  java
  • 初始继承和多态 二(补充)

    一.子类与父类

    1.子类:父类

    例如:

    Dog(子类):Anomal(父类)

    子类(派生类)父类(基类和超类)

    2.子类可以继承父类那些成员

    (非私有成员,但是从技术角度,可以认为是父类的所有成员)

    软件系统中的两个类符合is a时可以使用继承

    例如:

    student is a person

    se is a employee

    鸵鸟(ostrish)is a bird(错误结论!!!)

    ☆:继承模式下子类构造背后到底发生了什么?

    如果我们想构建一个子类对象

    复制代码
    //在Animal父类中
    class Animal{
      public string Name{get;set}
      public int Age{get;set}
    //无参  
    public Animal()
    {
    
    }
    //带参  
    public Animal(string name,int age)
    {
          this.Name=name;
         this.Age=age;
    }
    }
    复制代码
    复制代码
    //在Dog类中
    class Dog:Animal{
      public string Name{get;set}
      public int Age{get;set}
    //无参  
    public Dog()
    {
    
    }
    //带参  
    public Dog(string name,int age,string color)
    {
          this.Name=name;
         this.Age=age;
         this.Color=color
    }
      public void empty()
            {
                Console.WriteLine("Eat mat very happy");
                Console.ReadLine();
            }
    }
    复制代码
    复制代码
    //Program
        class Program
        {
            static void Main(string[] args)
            {
                Dog dog = new Dog();
                dog.empty();
            }
        }
    复制代码

    打断点进行调试

    按F11进行下面调试

    成序正常运行

     

     (1)进入子类构造方法名,但子类构造的方法体

     (2)跳转到父类构造方法名,接下来执行父类构造的方法体

     (3)父类方法体执行完毕,转到子类的方法体执行

     (4)子类方法执行完毕,跳转到Main对象函数,代表子类对象创建工程

    结论:
     只要你敢创建子类对象,那么后台一定有一个父类对象已经自动生成!!!!

    base(a,b):括号中有几个参数,参照的是父类中的带参构造。a,b的参数命名根据子类的带参

    构造参数的变量命名

    base可以访问属性和方法

    2.访问修饰符(protected)

    public(方法,类,成员变量):任何地方都可以访问

    internal(成员变量,类,方法):只能在当前程序集中使用(访问)

    private(方法,成员变量):只能中在当前类的{}使用

    protected受到保护的(成员变量和方法):当前类以及其他子类,以及子类的子类

    3.单根性和传递性

    单根性:一个孩子能有几个亲生父亲

    only one

    一个子类只能有一个直接父类
    4.多态

    多态:不同的对象对同一个操作,做出的响应不同,就是多态

    5.通过base调用父类构造函数注意点

    01.通过base调用父类构造函数只能书写在子类的构造后

    02.通过base调用父类构造函数参数顺序和父类的构造函数一致

  • 相关阅读:
    [译] iOS 11.4.1 Beta:全新的USB限制模式
    [杂] 无人机取证的一些研究
    [杂] 将高版本iTunes备份恢复到低版本iOS设备中
    [手机取证] Apple Watch取证初探
    [手机取证] 绕过屏幕锁定启用调试模式-For Android 4.4.2
    [手机取证] “神器”IP-BOX的一些问题
    [杂] BOSE QC15维修小记
    iOS 8潜在的取证问题
    [Fraud] China UnionPay defrauded in Macau money laundering scandal
    [DFNews] Fire-Eye与Fox IT联合推出Cryptolocker解锁网站
  • 原文地址:https://www.cnblogs.com/SFHa/p/8779966.html
Copyright © 2011-2022 走看看