Maison  >  Article  >  Java  >  Qu’est-ce qu’une classe abstraite en Java ?

Qu’est-ce qu’une classe abstraite en Java ?

零下一度
零下一度original
2017-06-25 09:34:551977parcourir

Pour comprendre les interfaces, il faut d'abord connaître les classes abstraites. Alors, qu’est-ce qu’une classe abstraite ?

Description du problème : Nous avons de nombreux objets dans la vie qui ne peuvent pas être décrits spécifiquement. Par exemple : nous pouvons dire qu'un quadrilatère a quatre côtés. Ou pour être plus précis, deux côtés d'un rectangle sont symétriques et égaux, et quatre côtés d'un carré sont symétriques et égaux. Mais pour les graphiques ordinaires, il est difficile de le décrire en détail. Passer au langage Java signifie : pour une classe très spécifique, on peut facilement définir ses différents attributs et méthodes, mais pour certaines classes, il nous est difficile de comprendre comment implémenter ses méthodes. A cette époque, nous pouvons utiliser des classes abstraites.

Le format syntaxique d'une classe abstraite est le suivant :

1 public abstract class 类名{2   abstract 返回值类型 方法名(参数列表);//定义抽象方法      3 }
Le mot-clé pour définir un résumé la méthode est : abstraite.

Une classe définie en utilisant abstract est appelée une classe abstraite, et une méthode définie en utilisant abstract est appelée une méthode abstraite.

Les méthodes abstraites n'ont pas de corps de méthode et elles-mêmes n'ont aucune signification, donc les classes abstraites ne peuvent pas être instanciées.

Lorsqu'elle est héritée par sa sous-classe, la sous-classe doit implémenter toutes les méthodes abstraites qu'elle contient.

Tant qu'il y a une méthode abstraite dans une classe, cette classe doit être définie comme une classe abstraite.

Après avoir compris la classe abstraite, nous continuons à réfléchir aux questions suivantes. Regardons le morceau de code suivant :

public abstract class shape 
{//定义一个图形抽象类public abstract void toString();//toString抽象方法public abstract void paint();//画图的抽象方法}public class triangle extends shape
{public void toString()
    {
        system.out.println("toString");
    }public void paint()
    {
        system.out.println("paint");
    }
}
Il semble qu'il n'y ait pas de problème. Et si nous ne voulons pas que certaines classes aient une méthode de peinture ? Mettre la méthode paint dans une autre classe ? Mais d’autres classes doivent également utiliser cette méthode. La syntaxe de Java stipule que les classes ne peuvent pas hériter de plusieurs classes. Que dois-je faire ? A ce stade, nous pouvons envisager d’utiliser des interfaces.

Interface est une extension de classe abstraite, qui résout le défaut de l'héritage multiple en Java. Nous pouvons encapsuler la méthode paint dans une interface, puis laisser la sous-classe de la classe graphique qui doit être utilisée implémenter cette interface. En Java, une classe peut implémenter plusieurs interfaces. Nous pouvons encapsuler différentes méthodes dans des interfaces et les laisser à la classe pour utilisation.

Le mot-clé d'interface est interface. Sa définition est la suivante :

public interface 接口名  extends 类名  implements 接口,....{  //定义常量
  public static final 数据类型 常量名=值;  //定义抽象方法
  public abstract 返回值类型 方法名 (参数列表);        
}
On notera que : 1. L'interface ne peut pas être instanciée 2. Le modificateur d'accès de l'interface ne peut que be public 3. L'interface fournira par défaut le mot-clé public abstract static final

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn