zoukankan      html  css  js  c++  java
  • 课堂笔记--初识继承和多态 继承

    第六章 初始继承和多态

     

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

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

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

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

    在调用子类构造的时候,没有使用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的属性和方法

     

     

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

    多态目的是为了统一调用

  • 相关阅读:
    Windows 8的语音识别
    硬件驱动程序的知识点滴
    怎么将一张100KB以上大小的电子图片压缩成30KB以内
    Hadoop概念学习系列之Hadoop新手学习指导之入门需知(二十)
    Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)(十八)
    研究生,别再玩了,你玩不起!
    redis源代码解读之内存管理————zmalloc文件
    线段树之入门篇
    C#托付和事件
    dlmalloc 2.8.6 源代码具体解释(6)
  • 原文地址:https://www.cnblogs.com/swordtm/p/5819072.html
Copyright © 2011-2022 走看看