继承器

时间:2013-07-16 20:52:30

标签: java inheritance

我从一本书中学习Java。我已完成继承剧集,我不理解用户界面剧集中的示例程序:

public class AWTApp extends Frame {
...
public AWTApp(String caption)
    {
        super(caption);
        setLayout(new GridLayout(PANELS_NO, 1));
        for(int i=0;i<PANELS_NO;i++)
        {
            panels[i]=new Panel();
            add(panels[i]);
        }
        label_test(panels[0]);
        ...
    }
}

这是继承Frame类的主类(AWTApp)中的构造函数。 在另一个例子中,框架是主类(AWTApp)中的一个变量,并添加你编写的组件frame.add(component)((框架nam - 框架,组件名称 - 组件))。如果没有框架对象,他们如何在这段代码中只添加()或只是打包()?

2 个答案:

答案 0 :(得分:0)

public class AWTApp extends Frame

这意味着AWTApp is a Frame

所以当你打电话

public AWTApp(String caption)
    {
        super(caption); // here you are calling super constructor the frame constructor and creating the frame

       this.setLayout(new GridLayout(PANELS_NO, 1)); // cause you are a frame you can call with this parents public protected (and package if they are in the same package)
       this.add(..); 
    }
}

答案 1 :(得分:0)

以下是一些解释。

首先,一些代码:

public class Parent{

    public void doThing(){
        System.out.println("I did a thing!");
    }

}

public class Child extends Parent{

    public void doAnotherThing(){
        System.out.println("I did another thing!");
    }

}

public class MainClass{

    public static void main(String[] args){
        Parent p = new Parent();
        Child c = new Child();
        p.doThing();
        c.doThing(); // This is correct because c is a Parent!
        c.doAnotherThing(); // This is correct, because c is also a child.
     }

}

Child继承了所有Parent方法,因为Child只是Parent的扩展。在你的程序环境中,这意味着AWTApp可以调用Frame的所有方法,因为它是一个框架,因此可以执行框架可以执行的任何操作,以及它自己的方法。