appel non méthode abstraite dans la classe abstraite java
J'ai 3 classes. Il semble question de base. Mais je ne peux pas trouver la réponse sur google.
public abstract class Test {
void t1()
{
System.out.println("super");
}
}
public class concret extends Test{
void t1()
{
System.out.println("child");
}
void t2()
{
System.out.println("child2");
}
}
public class run {
public static void main(String[] args) {
Test t=new concret();
t.t1();
}
}
Comment dois-je appeler la classe abstraite t1 méthode? Depuis je ne peux pas créer un objet de la classe abstraite comment dois-je appeler t1 dans la classe abstraite?
Merci.
Je ne vois pas de classes abstraites.
et où est la classe abstraite?
désolé. édité..
Vous pourriez l'appeler
Connexes: Pourquoi est super.super.méthode(); pas permis en Java?
et où est la classe abstraite?
désolé. édité..
Vous pourriez l'appeler
super.t1()
dans le t1 méthode de concret, mais en dehors de qui il n'y a pas un moyen de fois qu'il l'a remplacée.Connexes: Pourquoi est super.super.méthode(); pas permis en Java?
OriginalL'auteur Dilis | 2014-12-03
Vous devez vous connecter pour publier un commentaire.
Soit vous créez une classe concrète qui n'est pas remplacer la méthode, ou à l'intérieur d'une classe concrète qui ne remplacer la méthode, vous pouvez appeler
super.t1()
. Par exemple:Si vous avez seulement une instance d'un objet qui remplace une méthode, vous ne peut pas appel de la méthode originale de "l'extérieur" de la classe, parce que ce serait briser l'encapsulation... le but primordial est de remplacer le comportement de la méthode d'origine.
Vérifier why-is-super-super-method-not-allowed-in-java pour voir comment il pourrait être en violation de l'encapsulation.
OriginalL'auteur Jon Skeet
Voir la suite de tests:
OriginalL'auteur Alan Hay
utiliser le mot clé "super" pour faire
Assurez-vous d'utiliser que dans le remplacé la méthode bien que.
OriginalL'auteur ShreyJo10
Classe abstraite désigne la classe a la
abstract
modificateur avant laclass
mot-clé. Cela signifie que vous pouvez déclarer des méthodes abstraites, qui ne sont mis en œuvre dans les classes concrètes.Par exemple :
OriginalL'auteur Stav Saad
Votre code semble appeler t1(). Cependant, c'est d'appeler le béton t1 (), parce que le résumé t1() a été remplacée par le béton de classe.
Si vous souhaitez appeler le résumé t1 méthode de code principal, ne remplacent pas les t1() dans le béton.
Ou vous pouvez créer une méthode dans la classe de béton par exemple:
OriginalL'auteur Rami Del Toro
Créer un anonyme Intérieur de la classe,
Classe abstraite:
Ici est de savoir comment créer anonyme intérieure:
Appeler l'intermédiaire de la classe de l'objet créé pour la classe abstraite,
OriginalL'auteur Praveen