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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课堂笔记--初识继承和多态 继承相关的知识,希望对你有一定的参考价值。

第六章 初始继承和多态

 

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

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

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

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

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

 

 

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

多态目的是为了统一调用

以上是关于课堂笔记--初识继承和多态 继承的主要内容,如果未能解决你的问题,请参考以下文章

Python20期课堂总结-20180120day7-面向对象之继承组合多态封装等

C++笔记:继承和多态实例总结

多态相关笔记

Java_封装,继承和多态笔记

Java学习笔记--继承和多态(下)

Java学习笔记--继承和多态(上)