/*
* 问题:
* 不仅要在控制台输出子类中的局部变量的值,还要输出子类的成员位置的变量的值,怎么办?
*
* 现在要访问子类的成员变量num =20 ;
* 谁能代表Zi2类,this关键字:代表的是当前类对象
* 问题:要输出父类中的成员变量的值:
* super:代表的是父类的存储的空间标识(代表的是父类的对象或者是父类的引用)
* 应用场景:
* 访问成员变量:
* this.成员变量;访问的是本类的成员变量
* super.成员变量:访问的父类的成员变量
* 访问成员方法:
* this.成员方法(); 访问的是本类的成员方法
* super.成员方法();访问拿到父类的成员方法
* 访问构造方法:
* this():访问的是本类中的空参构造;this("..."):访问拿到是本类中的带参构造
* super():访问拿到是父类中无参构造
* super(".."):访问的是父类中的带参构造
* */
class Fu2{
public int num = 10;
}
class Zi2 extends Fu2{
public int num = 20 ;
public void show(){
int num = 30 ;
System.out.println(num);//30
System.out.println(this.num);//20
System.out.println(super.num);//10
}
}
//测试类
public class ExtendsDemo5 {
public static void main(String[] args) {
//创建子类对象
Zi2 z = new Zi2() ;
z.show() ;
}
}
package org.westos_01_继承;
/*
* 继承中构造访问的访问特点:
* 1)子类中的构造方法默认访问的是父类的无参构造方法
* 2)子类的构造方法默认的第一句话:super();
*
* 为什么子类中的构造方法默认访问父类中的无参构造方法
* 子类继承父类的时候,可能会使用父类的数据,所以在继承的时候,想让父类进行初始化,父类初始化完毕之后,子类才进行自己的初始化!
* 子类的无参和有参第一句话有一个默认语句:super() ;
*
* */
class Father3{
public Father3(){
System.out.println("这是父类的无参构造方法...");
}
public Father3(String name){
System.out.println("这是父类的带参构造方法...");
}
}
//子类
class Son3 extends Father3{
public Son3(){
///super() ;
System.out.println("这是子类的无参构造方法...");
}
public Son3(String name){
//super() ;
System.out.println("这是子类的有参构造方法...");
}
}
//测试类
public class ExtendsDemo6 {
public static void main(String[] args) {
//创建对象
Son3 s = new Son3() ;
System.out.println("-------------------");
Son3 s2 = new Son3("高圆圆") ;
}
}