Extraire et résumer leurs aspects communs, leurs attributs essentiels et leurs relations à partir de choses spécifiques, et rejeter les aspects, attributs et relations individuels et non essentiels. appelé abstraction.
Classe abstraite :
Une classe qui ne peut pas être instanciée à l'aide de la nouvelle méthode, c'est-à-dire une classe qui n'a pas d'objet instance spécifique, peut n'en dérivez de nouveaux que via la sous-classe des classes abstraites, puis sa sous-classe crée des objets
Méthode abstraite :
La méthode abstraite est une méthode modifiée avec abstract. le retour Le type de données, le nom de la méthode et les paramètres requis n'ont pas de corps de méthode, ce qui signifie que la méthode abstraite doit uniquement être déclarée. Lorsqu'une méthode est une méthode abstraite, cela signifie que cette méthode doit être remplacée par la méthode de la sous-classe. , sinon la méthode de la sous-classe La méthode est toujours abstraite
Caractéristiques des classes abstraites :
A : Les classes abstraites et les méthodes abstraites doivent être modifiées avec le mot-clé abstract ;
B : Il ne peut pas y avoir de méthodes abstraites dans les classes abstraites, mais les classes avec des méthodes abstraites doivent être définies comme des classes abstraites
C : Les classes abstraites ne peuvent pas être instanciées directement ; les sous-classes (sous-classes après le remplacement des méthodes) Class) sont instanciées de manière polymorphe);
Ce n'est pas concret
Les classes abstraites ont des constructeurs ; pour l'accès à la sous-classe Initialisation des données de la classe parent ;
D : Sous-classe de la classe abstraite
Si vous ne souhaitez pas remplacer les méthodes abstraites, la sous-classe doit être une classe abstraite
Pour devenir une classe concrète, toutes les méthodes abstraites doivent être réécrites
Un exemple de ; une classe abstraite est donnée ci-dessous :
public class AbstractDemo { public static void main(String[] args) { //Tree t = new Tree();//抽象的子类不能实例化;Error! Grass g = new Grass();//非抽象类的子类实例化 g.grow(); System.out.println("-------------"); Plant p = new Grass();//多态的方式 p.grow(); } } abstract class Plant{ public abstract void grow(); } /* * 1.子类是抽象类; */ abstract class Tree extends Plant{ Tree(){ System.out.println("tree"); } } /* * 2.子类不是抽象类,则必须重写所有抽象方法; */ class Grass extends Plant{ Grass(){ System.out.println("grass"); } public void grow(){ System.out.println("grass growing"); } }
Caractéristiques des membres des classes abstraites :
A : Les variables membres
peuvent être soit des variables ou des constantes ;
B : la méthode constructeur
est utilisée pour l'initialisation de l'accès de la sous-classe aux données de la classe parent
C : la méthode membre
peut être soit ; abstrait ou Peut être non abstrait ;
Caractéristiques de la méthode membre de la classe abstraite :
A : La méthode abstraite
force les sous-classes à faire des choses ; >
B : Méthode non abstraite Héritage de sous-classe pour améliorer la réutilisabilité du codeCe qui suit est un exemple de membre d'une classe abstraite :
public class AbstractMember { public static void main(String[] args){ Phone p = new Vivo(); //这里是多态;(用来实例化抽象类) p.height = 1460; //1600 -> 1460 System.out.println(p.height); System.out.println(p.width); System.out.println("-----------"); p.call(); //vivo call p.method(); //vivo method } } abstract class Phone{ public int height = 1600; public final int width = 960; public Phone(){} public Phone(String name,int count){} /*成员方法*/ public abstract void call();//抽象成员方法; public void method(){ //非抽象成员方法; System.out.println("phone method"); } } //非抽象子类,重写抽象父类的抽象方法: class Vivo extends Phone{ public void call(){ System.out.println("vivo call"); } public void method(){ System.out.println("vivo method"); } }
Recommandations d'apprentissage associées :
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!