继承是类与类之间的关系,子类继承父类(除构造方法外)的所有内容
目录
继承属性
属性名不同
当父类和子类的成员变量名不同时,子类所继承父类成员变量,相当于复制一份在自己的类里
内存结构 : 创建子类对象并调用子类构造方法的同时 , 会调用父类的构造方法 , 在子类对象中开辟一块super的空间,用于存储父类的成员变量.
public class Fu{
int a;
}
class Zi extends{
//子类继承父类,相当于将父类属性赋值到子类中
int b;
public void show(){
//2.类中调用直接使用
System.out.println(a);
System.out.println(b);
}
}
class Test{
public static void main(String[] args){
Zi zi = new Zi();
//1.父类和子类成员变量名不同 使用引用去调用
System.out.println(zi.a);
System.out.println(zi.b);
//2.通过类中方法调用成员变量
zi.show()
}
}
属性名相同
当父类成员变量, 子类成员变量, 局部变量 名字相同时,使用this和super关键字区分
1. java的就近原则,直接写a 指的是局部变量
2. this表示调用者,调用这个方法的是Zi对象,因此this.a是子类的成员变量
这里注意!!! 当子类成员变量没有a的情况下 this.a会去父类找
3. super是Zi对象在堆内存创建的空间,存放父类的成员变量内容
public class Fu{
int a = 100;
}
class Zi extends Fu{
int a = 200;
public void show(){