萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 2418|回复: 2

JAVA子类构造方法的三大定律(初学者注意)

[复制链接]
发表于 2003-7-1 22:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
  前几天在做一个实现构造方法及继承的小练习,然后写了以下的一个子类Hund,却偏偏老是编译出错(其中AufBildschirmAusgebbar 是个自定义接口,而Tier是父类,两者已编译,没有问题):

interface  AufBildschirmAusgebbar{
     void aufBildschirmAusgeben();         
  }

public class Tier implements AufBildschirmAusgebbar {

         int anzahlderfuesse;
         String name;

         Tier(int fuss,String zeichen){
          this.anzahlderfuesse=fuss;
          this.name= zeichen;
         }

          public void aufBildschirmAusgeben(){
                System.out.println("Tier "+this.name+ " hat " + this.anzahlderfuesse +" Fuesse .");
         }
}


class Hund extends Tier implements AufBildschirmAusgebbar {
        int knochen;

        public void aufBildschirmAusgeben() {
        System.out.println("Ein Hund hat "+this.knochen+" Knochen pro Wocho.");
        }

        public Hund (int zahl) {

            this.knochen = zahl;
        }
}

我研究了半天,错在哪里呢?后来找到了相关资料,才发现了java对于构造方法的继承有以下三大定律:


1.在子类的构造方法中可使用super(argument_list)语句调用父类的构造方法,必须写在第一行.

2.如果子类的构造方法中没有显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法

3.如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错


  这下大家明白了吧,倒霉就倒霉在我在父类Tier里面什么都有,就是没有定义无参数的构造方法,而且还定义了一个有参的构造方法.现在我就必须调用这个东东了,于是,将hund的构造方法改成

public Hund (String Name,int zahl) {
        super(4,Name);  
        this.knochen = zahl;
}

   得,这下大功告成了,嘿嘿.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-7-2 00:15 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2008-7-18 01:33 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-1 22:12 , Processed in 0.057440 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表