2010-07-12 8 views
1

Possible en double:
Why abstract classes necessary?Quand les classes abstraites doivent-elles être utilisées?

est un programme qui a ici 1 classe abstraite sans méthode abstraite. Cela fonctionne aussi bien. Alors quelle est l'utilisation de la classe abstraite, comment elle ne permet pas de créer des objets, nous pouvons utiliser cette classe concrète pour implémenter la méthode définie dans la classe abstraite dont nous devons étendre la classe abstraite alors pourquoi pas directement dans la classe concrète de classe abstraite. quelqu'un peut-il expliquer cela?

PROGRAMME:

abstract class demo { 
public void show() { 
System.out.println("not abstract method"); 
} 
// public abstract void display(); 
} 
class demo1 extends demo { 
public void display() { 
System.out.println("abstract method"); 
}} 

class program { 
public static void main(String args[]) { 
demo d = new demo1(); 
d.show(); 
d.display(); 
//d.display1(); 
} 
} 
+2

Pourriez-vous utiliser la majuscule, les paragraphes ou les deux pour rendre votre question un peu plus lisible, s'il vous plaît? –

Répondre

0

Parfois, il est tout simplement utile de savoir qu'un objet a été créé à partir d'une classe qui a été prolongée d'une certaine classe abstraite « parent ». Par exemple, si vous écrivez un gestionnaire d'événements personnalisé avec différents types d'événements, vous ne saurez pas quel type de données chaque événement contiendra ou quelles méthodes sont nécessaires pour utiliser ces données. Si vous avez créé une classe abstraite parent appelé « événement » vous pourriez alors étendre cette classe en MouseEvent, KeybaordEvent, NetworkEvent, etc et passez-les tous à une méthode de gestionnaire d'événements tels que

public void handleEvent(Event e){ ... } 

Ensuite, vous pouvez déterminer quel type spécifique de l'objet événement c'est et le gérer en conséquence.

Questions connexes