面向对象——继承

Posted

tags:

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

 什么是继承?

  Java中的继承类似于生活中的继承,在Java中,用extends关键字表示继承关系,表示is—a关系。比如狗是动物,就可以说狗继承了动物。

子类可以继承父类中非私有的属性和方法,但不能继承父类的构造方法。

方法的重写:

  方法的重写是指子类继承了父类的非私有方法,通过更改方法中的代码来完成需要的程序。

重写方法的特点:

  1、方法签名必须相同

  2、子类的修饰符范围要大于或者等于父类修饰符范围(public>protected>默认>private)

  3、子类的返回值类型和异常类型要小于等于父类的返回值类型和异常类型,即可以发生自动转换

方法的重写(override)和方法的重载(overload)的区别:

  1、方法的重写发生在父子类和接口实现类中,方法的重载只有在同一个类中

  2、方法的重写方法签名相同,方法的重载参数列表不同

  3、方法的重写与返回值和修饰符有关,方法的重载和返回值类型和修饰符无关

super关键字:代表当前对象的直接父类

  1、可以调用父类的非私有属性

  2、可以调用父类非私有的方法

  3、可以调用父类的构造方法,但super()必须放在第一行

  注意:super和this一样不能再静态方法中使用!

Object类:

  Object类是所有类的直接父类或者间接父类,可以继承Object类中的方法

父类和子类中代码的执行顺序:

  1、父类中的静态代码块

  2、子类中的静态代码块

  3、父类中的普通代码块

  4、父类的构造方法

  5、子类中的普通代码块

  6、子类的构造方法

==和equals的区别:

  1、==比较基本数据类型比较的是值

  2、==比较引用数据类型比较的是引用地址

  3、equals比较的是内容

  4、在Object类中equals比较的是地址,和==相同,如果需要按内容进行比较需要重写equals方法

 

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

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

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

Flutter入门-Dart面向对象原理

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

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

三. python面向对象