Реализует и расширяет класс
Я хотел бы знать, почему в 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");}
}
Есть ли определенный порядок в Java или правило при использовании extends
а также implements
в том же классе. Я хотел бы, чтобы кто-нибудь объяснил мне причины, пожалуйста.
2 ответа
Потому что в спецификации языка Java так сказано. Нормальное объявление класса следует этому синтаксису
NormalClassDeclaration:
ClassModifiers(opt) class Identifier TypeParameters(opt)
Super(opt) Interfaces(opt) ClassBody
где Super
является
Super:
extends ClassType
а также Interfaces
является
Interfaces:
implements InterfaceTypeList
На мой взгляд, это имеет смысл. Вы хотите определить, что что-то, прежде чем определить, что он может сделать.
Да, в Java есть особый порядок первого класса в расширенном, тогда вы можете реализовать много классов:
class Child extends Base implements Specification1,Specification2.. -> valid
&
class Child implements Specification1,Specification2.. extends Base -> not valid