Pourquoi une classe finale ne peut pas être héréditaire, mais une méthode finale peut être héréditaire?

J'ai une grande confusion dans l'utilisation de la "finale" du mot-clé entre les classes et les méthodes
j'.e.pourquoi finale des méthodes de soutien héritage, mais pas en dernier classes

final class A{
    void print(){System.out.println("hello world");}
}

class Final extends A{
    public static void main(String[] args){
        System.out.println("hello world");
    }
}

ERREUR:

ne peut pas hériter d'Une Finale
la classe Finale extennds Un{
MÉTHODE FINALE EST..

class Bike{
    final void run(){System.out.println("run");}
}
class Honda extends Bike{
    public static void main(String[] args){
        Honda h=new Honda();
        h.run();
    }
}
  • final signifie, que vous ne pouvez pas "surcharger" il. Dans une classe, vous "écraser" avec l'héritage (deux objets différents avec le même type). Dans le contexte de la méthode que vous avez juste une nouvelle méthode avec le même nom et les paramètres (la signature). Dans la variable contexte, il est la valeur ou par référence.
  • essayez de @Override la dernière méthode dans une classe enfant, vous verrez une très similaires message d'erreur...
  • Double Possible de Java "finale" de la méthode: est-ce une promesse?
InformationsquelleAutor sravani.s | 2016-02-17