• 课堂笔记--初识继承和多态 继承


    第六章 初始继承和多态

     

    继承:一个类可以使用另一个类的属性和方法(成为该类的成员)

    子类继承父类使用的符号是冒号

    子类不能继承父类的构造方法

    子类不能访问父类的私有字段和方法

    在调用子类构造的时候,没有使用base关键字调用父类的指定构造,那么默认调用父类的无参构造。

    定义一个Person类

    class Person

        {

            public string Name { get; set; }

            public Gender Sex { get; set; }

            public void SayHello()

            {

            }

            public Person()

            {

            }

            public Person(string name, Gender sex)

            {

                this.Name = name;

                this.Sex = sex;

            }

     

    定义一个Chinese类 继承自Person

     class Chinese:Person

        {

            public int Age { get; set; }

            public Chinese()

            {

            }

           public Chinese(string name, int age, Gender sex)

            {

                this.Age = age;

                this.Name = name;

                this.Sex = sex;

            }

    }

    定义枚举 性别 Male,Female

    public enum Gender

        {

            Female=0,Male=1

    }

     

    Chinese cn=new Chinese(“”,18,Gender.Male)

    指向子类构造→不进入子类构造赋值→进入父类的构造体→回到子类构造→执行子类构造题,子类构造体执行完毕→跳转到Main→在内存中构建出Chinese

     

    如果new一个子类对象,那么有如下执行流程

    1.定位到子类对应构造函数,没有执行子类方法

    2.转向父类的无参构造函数,执行父类构造方法体

    3.专项子类方法体继续进行

    (使用base关键字执行指定的父类构造函数)

     

    Base关键字

    base.父类成员 base.父类方法

    Base关键字可以调用父类成员 方法 和构造

            public Chinese(string name, int age, Gender sex):base(name,sex)

            {

                this.Age = age;

            }

    base(参1,参2)的顺序根据父类构造参数的参数顺序保持一致,但是变量名是和子类构造的参数变量名一致

    public Person(Gender sex, string name)//修改父类参数顺序

    子类调用参数的顺序需要变化

    public Chinese(string name, int age, Gender sex):base(sex,name)

            {

                this.Age = age;

            }

     

     

     

    protected访问修饰符

     

    访问修饰符private 私有的 只能在当前类使用

    protected只能在该类和与其有继承关系的子类中使用

    public可以在任何地方使用

     

    继承的两大特性

    单根性 一个类只能有一个直接父类

    传递性 A是B的父类 B是C的父类 C仍然可以继承A的属性和方法

     

     

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

    多态目的是为了统一调用

  • 相关阅读:
    Typescript---01 数据类型
    微信小程序开发01 --- 微信小程序项目结构介绍
    C# 高级编程05----常用修饰符
    C# 高级编程04----类
    C# 高级编程02----手动创建C#程序
    C# 高级编程03----细节内容
    C# 高级编程01----.Net基础介绍
    Docker----起步(2)----在Ubuntu上安装最新版的Docker CE
    Microsoft Graph API -----起题 Graph API
    Docker----与Asp.net core 的完美结合,在docker容器中创建Asp.Net Core 项目
  • 原文地址:https://www.cnblogs.com/swordtm/p/5819072.html
Copyright © 2020-2023  润新知