面向对象继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象继承相关的知识,希望对你有一定的参考价值。

一、    继承的优点

优点:提高代码的可重用性

1、     如何判断A、B类之间是继承关系?

      符合 is…a关系

2、java中,所有的类都直接或间接的继承了java.lang.Object类

3、     java中,私有的成员构造方法没有被子类继承

缺省权限的成员,不能被其他包中的子类继承

二、如何实现继承

1、     将多个类中的共同的成员,提取出来放到一个公共的类(父类、超类、基类),自己只保留特有的成员

2、     多个类(子类、派生类),继承(extends) 公共类

访问修饰符class 子类 extends 父类{

 

}

说明:class前面的访问修饰符不能为private、protected

三、继承的2大特性

1、     单一性:一个类只能直接继承一个父类

2、     传递性:一个类可以间接的继承多个类(子类可以调用父类的父类…中的成员)

四、子类如何调用父类的成员

           1、public属性

                  super.属性名

2、构造方法

    super(【值】);

    子类隐式(自动)查找并调用父类的无参数的构造方法

3、     其他方法

super.方法名([值]);

第二次课

一、    方法重写

1、     概念—对从父类继承过来的方法进行重新编写

2、     常见面试题:构造方法可以重写吗?为什么?

3、     方法重载(overloading)和方法重写(overriding)的区别和联系?

方法重载,

      在同一个类中(也可以在继承关系中),方法名相同,参数列表(个数、类型)不同,不能根据方法的返回类型和访问修饰符不同,而判定是方法重载

方法重写(方法覆盖),

      是对从父类继承过来的方法进行重新编写,

重写方法时,方法名、参数列表、返回类型必须和要重写的父类方法保持一致,访问修饰符可以不同,但访问权限必须要比父类要大

4、     访问修饰符4个(按权限从小到大排列)

private(私有的)< friendly(缺省的)< protected(受保护的)< public(公共的)

 

二、    在继承关系中,构造方法执行顺序

1、     在继承中,创建子类对象时,会自动调用父类的无参数的构造方法

2、     子类和父类同时存在有构造方法时,它们的执行顺序?

实例化子类对象时,先执行父类中无参数的构造方法,然后再执行子类中的构造方法

3、在子类构造方法中,使用super关键字调用父类的有参数的构造方法,子类将不会再自动调用父类的无参数的构造方法

 

第三次课

一、   抽象类和抽象方法

1、     抽象方法——方法用abstract修饰

a)   抽象方法,必须位于抽象类中

b)   抽象方法,没有方法体{}

c)   抽象方法,必须被子类重写

2、     抽象类——类名用abstract修饰

a)   作用:

一般用来做父类通过抽象方法来约束子类的行为

b)   使用时注意事项:

l  有抽象方法的类,肯定是抽象类

l  抽象类不能被实例化(创建对象)

l  抽象类中可以包含抽象方法和非抽象方法

l  抽象类中的非抽象方法,子类可以有选择性的重写,抽象方法,必须被子类重写

 

二、   final修饰符

1、     final修饰的变量——常量

2、     final修饰的类——密封类或封闭类

封闭类不能被其他类继承

         3、final修饰的——封闭方法,不能被子类重写

以上是关于面向对象继承的主要内容,如果未能解决你的问题,请参考以下文章

JAVA面向对象,继承、封装、多态

JS面向对象三大特征:封装、继承、多态

Flutter入门-Dart面向对象原理

Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承

Python之面向对象继承详解以及面向对象三大特性

三. python面向对象