那要看父类的构造函数带参数不,像你这样带参数的不行。
不写的话,Java会调用父类的默认构造函数(无参数)。
你可以运行以下程序,看看结果:
class Father {
public Father(){
System.out.println("Father构造函数");
}
public Father(int i){
System.out.println("Father构造函数2,带int"+i);
}
}
public class Child extends Father {
public Child(){
System.out.println("Child构造函数");
}
public Child(int i){
System.out.println("Child构造函数2,带int"+i);
}
public static void main(String[] args) {
new Child(2);
}
}
子类继承父类之后只能重写父类中的protected和public方法,默认没有修饰词的是friendly,同样可以重写,但是private方法就不能重写,即使子类中的方法名和父类的private方法一致,也只能看做是一个新的方法,而不是重写。override也就是重写,覆写。
父类对象.方法名()调用的是父类原方法。调用重写后的方法需要用子类对象调用。如果要在子类中调用父类被重写的方法用super.方法名()。
恩,要执行父类的构造方法的话,要写super(looper),Java中规定子类不继承父类的构造方法,不过在子类的构造方法中默认有 super();// 就是调用父类的无参构造方法,当父类定义了一个或者多个构造方法时,Java中不提供默认的构造方法
不会,要调用要用super();函数调用。