实现并扩展一个类

时间:2014-03-15 17:15:57

标签: java using extends implements

我想知道为什么在Java中我可以做到这一点

    interface Specification{
    double Interest =12.5;
    void deposit(double);
    }

    class Base{
    private String Account;
    public Base(String acct){Account=acct;}
    public void Show(){System.out.print("Account # "+Account);}
    }

    class Child extends Base implements Specification{
    public Child (String acct){super(acct);Show();}
    public void deposit(double cash){System.out.print("Now you have "+cash+" Dollars");}
    }

但我不能这样做

    class Child implements Specification extends Base{
    public Child (String acct){super(acct);Show();}
    public void deposit(double cash){System.out.print("Now you have "+cash+" Dollars");}
    }

在同一中使用extendsimplements时,Java或规则中是否有任何特定顺序。 我希望有人能解释一下原因。

2 个答案:

答案 0 :(得分:2)

Because the Java Language Specification says so。正则类声明遵循此语法

NormalClassDeclaration:
    ClassModifiers(opt) class Identifier TypeParameters(opt)
                                               Super(opt) Interfaces(opt) ClassBody

其中Super

Super:
    extends ClassType

Interfaces

Interfaces:
    implements InterfaceTypeList

在我看来,这是有道理的。在定义它可以做什么之前,你想要定义什么。

答案 1 :(得分:0)

是的,在java中有扩展的特定顺序第一类,那么你可以实现许多类:

class Child extends Base implements Specification1,Specification2.. -> valid 

&安培;

class Child implements Specification1,Specification2.. extends Base -> not valid