我从一本书中学习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 - 框架,组件名称 - 组件))。如果没有框架对象,他们如何在这段代码中只添加()或只是打包()?
答案 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的所有方法,因为它是一个框架,因此可以执行框架可以执行的任何操作,以及它自己的方法。