我想知道为什么在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");}
}
在同一类中使用extends
和implements
时,Java或规则中是否有任何特定顺序。
我希望有人能解释一下原因。
答案 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