新手请教类继承问题
如果父类有构造方法T();和T(int n),那么子类建构造方法时,如果构造方法P()已经在第一行用super(300)调用了父类的第二个构造方法,那么他还是会自动调用与他同为空参数的父类构造方法T()么?个人认为不会调用T()了,但是我在视频中看到如果这时候去掉父类的T()就会出错,难道每个子类的构造方法都要先自动调用一个父类与之参数一致的构造方法?
另外的一个问题:
class T {
private int i = 0;
int j;
protected int k;
public int z;
}
class p {
public static void main(String[] aa){
T t = new T();
System.out.println(t.k);
}
}
以上是第一个Testfangkong.java文件,编译成功后。在同一文件夹创建一个Testf.java文件
public class Testf extends T{
public void ma() {
System.out.println(k);
}
}编译时提示找不到类T,是不是包的设置出现问题了,视频中好像也没导入什么包啊
[最优解释]
1、顺序就是那样,无参构造都是隐式调用好的
2、那个先编译的类是否在你的classpath中?
[其他解释]
第一问:
class Super {
public Super() {
}
}
class Sub extends Super {
public Sub(int i) {
super();
outPut("me");
}
void outPut(String string){
System.out.println(string);
}
}
没有报错,你知道答案了吧。
第二问:
大哥,没有说找不到 T class,我试过了,就copy你的代码,可能是你前面有 class T 的文件没有先编译好,
另外:LZ你写的 class name 不规范哈, 首字母应该大写···
[其他解释]