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号