当前位置: 代码迷 >> Java相关 >> [求助]关于Java的super的用法
  详细解决方案

[求助]关于Java的super的用法

热度:333   发布时间:2005-11-24 13:27:00.0
[求助]关于Java的super的用法
有一个类class1

class class1 extends class2 implements interface1 {}

中可不可以使用super,如果可以的话super是指向class2还是interface1
请高手们帮小弟指点迷津,谢谢
搜索更多相关的解决方案: super  Java  用法  

----------------解决方案--------------------------------------------------------
class class1 extends JFrame implements ActionListener
{
public class1(){
super("aaa");
}
}
上面这段程序能看懂么?能看懂也就知道是怎么回事了……
----------------解决方案--------------------------------------------------------

接口不能创建对象。。。


----------------解决方案--------------------------------------------------------

衍生类中的域或方法与父类中的域或方法同名,因为在衍生类里,衍生类的域或方法优先级高,所以衍生类中的同名的域和方法就隐藏了父类的域和方法,但如果想要使用超类中的域或方法,此时就需要用到super,比如:

程序代码:

   class Country{

    String name;

    public void value(){

     name=\"dad\";

     System.out.println(\"superclass's value method\");
}

   }

下面的衍生类中,衍生类的域和方法隐藏了父类的name域和value()方法,

程序代码:
class City extends Country{

    String name;

    void value(){

     name=\"son\";

     super.value();

     System.out.println(name+\" is the value of subclass's name\");

     System.out.println(super.name+\" is the value of superclass's name\");

    }


 
为了在衍生类中用超类的name域和value()方法,代码中我们使用了super[super.name和super.value()]

所以显示的结果为

superclass's value method

   son is the value of subclass's name

   dad is the value of superclass's name

如果我们想要使用超类的构造函数则应当使用super(参数列表)的形式。

[此贴子已经被作者于2006-1-20 22:08:16编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案