好的,我需要帮助的是类和方法之间的关系。我听说过关联和聚合,但我不知道如何使用它们,或者即使它们适合这段代码。
此外,我想知道super()
中p3=p3In
做了什么以及class Pgm2
public class Pgm1 {
public Pgm1() {
System.out.println("Konstruktor Pgm1");
}
public void skriv() {
System.out.println("Skriv i Pgm1");
}
public static void main(String[] args) {
Pgm3 p3=new Pgm3();
p3.skriv();
Pgm4 p4=new Pgm4(p3);
p4.skriv();
Pgm2 p2=new Pgm2();
p2.skriv();
}
}
public class Pgm2 {
private Pgm1 p1;
public Pgm2() {
p1=new Pgm1();
System.out.println("Konstruktor Pgm2");
}
public void skriv() {
System.out.println("Skriv i Pgm2");
}
}
public class Pgm3 {
public Pgm3() {
System.out.println("Konstruktor Pgm3");
}
public void skriv() {
System.out.println("Skriv i Pgm3");
}
}
public class Pgm4 extends Pgm2 {
private Pgm3 p3;
public Pgm4(Pgm3 p3In) {
super();
p3=p3In;
System.out.println("Konstruktor Pgm4");
}
public void skriv() {
System.out.println("Skriv i Pgm4");
}
}
做了什么。
{{1}}
答案 0 :(得分:0)
super();
调用基类的构造函数(不带参数)(在本例中为Pgm2
)。
p3=p3In;
将p3In
的值分配给类变量p3
。
答案 1 :(得分:0)
super()
是super关键字的一种特殊用法,您可以在其中调用无参数的父构造函数。通常,super关键字可用于调用重写方法,访问隐藏字段或调用超类的构造函数。
答案 2 :(得分:0)
课程Pgm1
,Pgm2
和Pgm3
都是非常正常的课程。但是,类Pgm4
扩展 Pgm2
意味着Pgm4
是Pgm2
的子类。可以把它想象成一个动物园模拟器程序,你可能有一个名为Animal
的类或类似的类,然后是许多扩展它的类。这些类的一些示例可能是我Lion
,Tiger
,Bear
(我的),每个特定的动物类都是模拟器中的动物。
super();
语句(就像其他人指出的那样)调用你扩展的类的构造函数。最后,p3=p3In;
行将Pgm4
类中的变量分配给通过构造函数传递给类的任何内容。希望有所帮助!