Java中的初学者 - 关于特定代码的关系和其他问题

时间:2014-02-07 00:28:45

标签: java relationship super relation

好的,我需要帮助的是类和方法之间的关系。我听说过关联和聚合,但我不知道如何使用它们,或者即使它们适合这段代码。

此外,我想知道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}}

3 个答案:

答案 0 :(得分:0)

super();调用基类的构造函数(不带参数)(在本例中为Pgm2)。

p3=p3In;p3In的值分配给类变量p3

答案 1 :(得分:0)

super() 

是super关键字的一种特殊用法,您可以在其中调用无参数的父构造函数。通常,super关键字可用于调用重写方法,访问隐藏字段或调用超类的构造函数。

答案 2 :(得分:0)

课程Pgm1Pgm2Pgm3都是非常正常的课程。但是,类Pgm4 扩展 Pgm2意味着Pgm4Pgm2的子类。可以把它想象成一个动物园模拟器程序,你可能有一个名为Animal的类或类似的类,然后是许多扩展它的类。这些类的一些示例可能是我LionTigerBear(我的),每个特定的动物类都是模拟器中的动物。

super();语句(就像其他人指出的那样)调用你扩展的类的构造函数。最后,p3=p3In;行将Pgm4类中的变量分配给通过构造函数传递给类的任何内容。希望有所帮助!