private int a;
private int b;
A(){
a=10;
b=90;
}
A(int a,int b){
this.a=a;
this.b=b;
}
//setter()
public void setA(int a) {
this.a = a;
}
public void setB(int b) {
this.b = b;
}
//getter()
public int getA() {
return a;
}
public int getB() {
return b;
}
public void print(){
System.out.println("******A中的print()方法被调用了*****");
System.out.println(a+"\t"+b);
System.out.println(a+b);
System.out.println((double) (a+b)/2);
System.out.println("******AS中的print()方法调用结束*****");
}
}
class B extends A{
private int a;
private int b;
private int c;
private int d;
B(){
a=30;
b=20;
c=0;
d=0;
}
B(int a,int b,int c,int d){
super(a,b);
this.c=c;
this.d=d;
}
//setter()
public void setC(int c) {
this.c = c;
}
public void setD(int d) {
this.d = d;
}
public int getC() {
return c;
}
public int getD() {
return d;
}
public void print(){
System.out.println("B类中的print方法被调用了");
System.out.println(a+"\t"+b+"\t"+c+"\t"+d);
System.out.println("A中:a="+super.getA()+",\tb="+super.getB());
System.out.println("BSuperClass中:c="+c+",\tdVar="+d);
System.out.println(a+b+c+d);
System.out.println((double)(a+b+c+d)/4);
super.print();//调用父类方法
System.out.println("BSuperClass类中的method方法调用结束");
}
}
class C extends B{
private int c;
private int d;
private int e;
private int f;
C(){
c=40;
d=30;
e=0;
f=0;
}
C(int c,int d,int e,int f){
super(c,d);
this.e=e;
this.f=f;
}
public void setE(int e) {
this.e = e;
}
public void setF(int f) {
this.f = f;
}
public void print(){
System.out.println("C类中的print()方法被调用了");
System.out.println("C中:e="+e+",\tf="+f);
System.out.println("c="+super.getC()+",\td="+super.getD());
System.out.println(c+d+e+f);
System.out.println((double)(c+d+e+f)/4);
super.print();
System.out.println("C类中的print方法调用结束");
}
}
public class Thissuper {
private static void main(String[] args){
B b1=new B(c,d);
b1.setC(33);
b1.setD(35);
print01(b1);
print01(new C(3,4,5,6));
B b2=new B(44,22,4,6);
print01(b2);
}
public static void print01(A mm){
mm.print();
}
报错内容Cannot resolve method 'super(int c, int d)'
Cannot resolve symbol 'c'
Cannot resolve symbol 'd'
C类是继承了B类,super只能调用直接父类,即调用B类的构造函数,4个参数
super(c,d);
改为
super(c,d,e,f);
C类继承的是B类,B类中没有B(int a,int b)