extends 的小动作
Demo1:子类实例化对象之前会自动先实例化父类对象,调用了父类无参构造方法
class A{
	public A() {
		System.out.println("A、A类的构造方法");
	}
}
 
class B extends A{
	public B() {
		System.out.println("B、B类的构造方法");
	}
}
 
public class Demo {
	public static void main(String[] args) {
		new B();
	}
}
##################
console:
A、A类的构造方法
B、B类的构造方法
原文链接:https://blog.csdn.net/ikv1989/article/details/80080416
Demo2:如果父类没有无参构造,就必须使用super()明确调用父类有参构造方法
class A{
	public A(String title) {
		System.out.println("A、A类的构造方法");
	}
}
 
class B extends A{
	public B(String title) {
		super(title);
		System.out.println("B、B类的构造方法");
	}
}
 
public class Demo04 {
	public static void main(String[] args) {
		new B("Hello");		
	}
}
##################
console:
A、A类的构造方法
B、B类的构造方法
原文链接:https://blog.csdn.net/ikv1989/article/details/80080416
Demo3:dubug check resource of null
public class A {
    public String s1 = "AAAA";
    public static void main(String[] args) {
        A a = new B();
        System.out.println(a.s1);
    }
    public A(){
        call();
    }
    public void call(){
        System.out.println("A:" + s1);
    }
}
public class B extends A{
    public String s2 = "BBBB";
    public B(){
        call();
    }
    public void call(){
        System.out.println("B:" + s2);
    }
}
##############################
when run class A main method
console:
B:null
B:BBBB
AAAA

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号