class A{
public int i=0;
A(int m){
i=1;
}
}class B extends A{
B(int m){
i=2;
}
}public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i); }
}
public int i=0;
A(int m){
i=1;
}
}class B extends A{
B(int m){
i=2;
}
}public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i); }
}
class A{
public A(){
//这里是构造方法的内容
}
}
B(int m){
i=2;
}
}
你应该是这里报的错,应该是
class B extends A{
B(int m){
super(1);
i=2;
}
}
因为父类是有参构造,这里调用父类构造需要提供参数
请加入 super(m); 或其他int 参数都可以。
new做的3件事情:
1.堆中开辟空间,成员属性跟随对象进入堆内存并赋默认值。
2.调用构造器为对象初始化信息。
3.将地址返回给引用。
你要让程序初始化能走到A,我就直到这两种办法。
class A{
public int i=0;
A(int m){
i=1;
}
}class B extends A{
B(int m){
super(m);
i=2;
}
}public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i); }
}
public int i=0;
A(int m){
i=1;
}
A(){}
}class B extends A{
B(int m){
i=2;
}
}public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i); }
}
public int i=0;
A(int m){
i=1;
}
}class B extends A{
B(int m,int n){
super(n);
i=2;
}
}public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i); }
}
构造方法加 public是为了给别的包用的。本包不用加。这个层主说的不对
还有就是问别人代码的时候不要用伪代码。伪代码鬼知道你想干啥