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

Java初学者-关系和其他有关特定代码的问题,java,relationship,super,relation,Java,Relationship,Super,Relation,好的,我需要帮助的是类和方法之间的关系。我听说过关联和聚合,但我不知道如何使用它们,甚至不知道它们是否适合此代码 另外,我想知道super()做了什么,以及p3=p3In在classpgm2中做了什么 public class Pgm1 { public Pgm1() { System.out.println("Konstruktor Pgm1"); } public void skriv() { System.out.pri

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

另外,我想知道
super()
做了什么,以及
p3=p3In
classpgm2
中做了什么

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"); 
    } 

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

p3=p3In
p3In
的值赋给类变量
p3

super() 

是super关键字的特殊用法,在这里调用无参数父构造函数。一般来说,super关键字可用于调用重写的方法、访问隐藏字段或调用超类的构造函数。

Pgm1
Pgm2
Pgm3
都是非常普通的类。但是,类
Pgm4
扩展了
Pgm2
,这意味着
Pgm4
Pgm2
的子类。把它想象成一个动物园模拟器程序,你可能有一个叫做
Animal
或类似的类,然后有很多其他类扩展它。这些类的一些示例可能是我的狮子、老虎、熊,这些特定的动物类都是模拟器中的动物

super()语句(正如其他人指出的)调用您扩展的类的构造函数。最后,
p3=p3In行将
Pgm4
类中的变量分配给通过构造函数传递给类的任何对象。希望有帮助