【问题标题】:Beginner in Java - Relations and other questions about specific code [closed]Java初学者-有关特定代码的关系和其他问题[关闭]
【发布时间】:2014-02-07 00:28:44
【问题描述】:

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

另外,我想知道super() 做了什么,p3=p3Inclass 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"); 
    } 

}

【问题讨论】:

    标签: java relationship super relation


    【解决方案1】:

    Pgm1Pgm2Pgm3 类都是非常普通的类。但是 Pgm4扩展 Pgm2 意味着 Pgm4Pgm2 的子类。把它想象成一个动物园模拟器程序,你可能有一个名为Animal 的类或类似的东西,然后还有很多其他类扩展它。这些类的一些示例可能是我LionTigerBear(哦,天哪),并且每个特定的动物类都是模拟器中的动物。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
        super() 
        

        是 super 关键字的一种特殊用法,您可以在其中调用无参数的父构造函数。一般来说,super 关键字可用于调用被覆盖的方法、访问隐藏字段或调用超类的构造函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-13
          • 1970-01-01
          • 2019-05-16
          • 2022-06-13
          • 2021-03-04
          • 2019-09-01
          • 1970-01-01
          • 2011-01-12
          相关资源
          最近更新 更多