java 继承性

父子类重名

直接通过子类对象访问的成员变量:

                            (Zi zi = new Zi();) 等号左边是谁就优先用谁,没有向上找。

间接通过成员方法访问成员变量:

                             该方法属于谁就有先用谁,没有向上找。

 

 

 

 

 

三个变量重名

局部变量:      直接写局部变量名

本类成员变量: this.成员变量名

父类的成员变量: super.成员变量名

在父子类的继承关系当中,创建子类对象,访问成员方法的规则

覆盖重写(override)

对比

重写(override):方法的名称一样,参数列表也一样。覆盖,覆写

重载(Overload):方法的名称一样,参数列表不一样

方法覆盖重写的注意事项:

1.必须保证父子类方法名称一致,参数列表相同。

@Override:写在方法前面,用来检测是不是有效的正确覆盖重写

2.子类方法的返回值必须大于等于父类方法的返回值范围

java.lang.Object类是所有类的最高父类

3.子类方法的权限必须大于等于父类方法的权限修饰符。

public > protected > (default) >private

(default)不是关键字

覆盖重写应用场景

如何在继承的方法中避免写父类重复内容:super.父类方法();

继承关系中,父子类构造方法的访问特点

子类必须调用父类构造方法,不写编译器直接加上,super只能有一个,必须是构造方法第一行

super关键字的用法有3种

1.在子类的成员方法中,访问父类的成员变量

2.在子类的成员方法中,访问父类的成员方法。

3.在子类的构造方法中,访问父类的构造方法。

this的三种用法

1.本类的成员方法中,访问本类的成员变量。

2.本类的成员方法中,访问类的另一个成员构造方法。

3.在本类的构造方法中,访问本类的另一个构造方法。

  1.        this(...)调用也必须是构造方法第一个语句
  2. super和this两种构造调用不能同时使用。

猜你喜欢

转载自blog.csdn.net/mddCSDN/article/details/89243194
今日推荐