标题:[求助]关于Java的super的用法
只看楼主
laflaflaf
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-11-24
 问题点数:0 回复次数:4 
[求助]关于Java的super的用法
有一个类class1

class class1 extends class2 implements interface1 {}

中可不可以使用super,如果可以的话super是指向class2还是interface1
请高手们帮小弟指点迷津,谢谢
搜索更多相关主题的帖子: super Java 用法 
2005-11-24 13:27
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
class class1 extends JFrame implements ActionListener
{
public class1(){
super("aaa");
}
}
上面这段程序能看懂么?能看懂也就知道是怎么回事了……

向着软件工程师的目标前进!
2005-11-24 14:54
jrg9522
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-1-19
得分:0 

接口不能创建对象。。。

2006-01-19 01:04
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
得分:0 

衍生类中的域或方法与父类中的域或方法同名,因为在衍生类里,衍生类的域或方法优先级高,所以衍生类中的同名的域和方法就隐藏了父类的域和方法,但如果想要使用超类中的域或方法,此时就需要用到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编辑过]


一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-20 22:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-34991-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.572082 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved