0
点赞
收藏
分享

微信扫一扫

面向对象—继承

一.继承基本属性

class  子类  extends 父类{   }

1.子类就会自动拥有父类定义的属性方法

2.父类又叫超类,基类

3.子类又叫派生类

二.细节

1.子类继承了所有的属性和方法,但是私有属性不能放在子类中直接访问,要通过公有的方法去访问。

2.子类必须调用父类的构造器,完成父类的初始化

3.当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类哪个构造器完成对父类的初始化工作,否则,编译不会通过。

4.如果希望指定去调用父类的某个构造器,则显式的调用一下

5.super在使用时,需要放在构造器第一行

6.super()和this()都只能放在构造器第一行,因此这两个方法不能共存在一个构造器中。

7.Java所有类都是object的子类

8.父类构造器的调用不限于直接父类,将一直追溯到object类(顶级父类)

9.子类最多只能继承一个父类(直接继承),即Java中是单继承机制

10.不能滥用继承,子类和父类必须满足is-a的关系

三.super关键字

1.基本介绍

super代表父类的引用,用于访问父类的属性、方法、构造器

2.基本语法

1.访问父类的属性,但不能访问父类的private属性

super.属性名;

2.访问父类的方法,不能访问父类的private方法

super.方法名(参数列表);

3.访问父类的构造器

super(参数列表);只能放在构造器的第一句,只能出现一句

3.super好处

1.父类属性由父类初始化,子类的属性由子类初始化

2.当子类中有和父类中的成员(属性或方法)重名时,为了访问父类的成员,必须通过super,如果没有重名,使用super,this,直接访问是一样的效果。

3.super访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员;如果多个基类(上级类)中都有同名的成员,使用super遵循就近原则

4.super与this的比较


区别点

this

super

1

访问属性

访问本类中的属性,如果本类中没有此属性,则从父类中继续查找

从父类开始查找的属性

2

调用方法

访问本类中的方法,如果本类中没有此方法,则从父类中继续查找

直接访问父类中的方法

3

调用构造器

调用本类构造器,必须放在构造器的首行

调用父类构造器,必须放在子类构造器的首行

4

特殊

表示当前对象

子类中访问父类对象

四.方法重写(override)

1.注意事项和使用细节

1.子类的方法的形参列表,方法名称,要和父类方法中的参数,方法名称完全一样

2.子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类

  比如,父类返回类型是object,子类方法返回类型是String

3.子类方法不能缩小父类方法的访问权限

2.方法重载和方法重写的比较

名称

发生范围

方法名

形参列表

返回类型

修饰符

重载(overload)

本类

必须一样

类型,个数或者顺序至少有一个不同

无要求

无要求

重写(override)

父子类

必须一样

相同

子类重写的方法,返回类型需要和父类返回类型相同或者是其子类

子类方法不能缩小父类方法的访问范围

举报

相关推荐

面向对象-继承

面向对象 - 继承

面向对象---继承预习

面向对象06:继承

面向对象的继承

Java面向对象——继承

0 条评论