Реализует и расширяет класс

Я хотел бы знать, почему в 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 
Другие вопросы по тегам