recherche
MaisonJavajavaDidacticielLes classes abstraites peuvent-elles être instanciées en Java ?

Can Abstract Classes Be Instantiated in Java?

Pouvons-nous instancier une classe abstraite ?

Lors d'un entretien, on vous a demandé s'il était possible d'instancier une classe abstraite. Traditionnellement, vous répondriez « non ». Cependant, l'intervieweur vous a surpris en disant que c'était possible.

Pour le démontrer, considérez le code suivant :

abstract class my {
    public void mymethod() {
        System.out.print("Abstract");
    }
}

class poly {
    public static void main(String a[]) {
        my m = new my() {};
        m.mymethod();
    }
}

Malgré le modificateur abstrait sur my, vous pouvez en créer une instance en utilisant une sous-classe anonyme. Vous créez essentiellement une sous-classe à la volée et attribuez sa référence à la référence de classe abstraite m.

Selon la spécification du langage Java (JLS) :

"Si l'expression de création d'instance de classe se termine par un corps de classe, alors
la classe instanciée est une classe anonyme."

Donc, dans ce cas, la classe instanciée n'est pas la mienne, mais une classe anonyme. sous-classe.

Ce comportement peut être confirmé en compilant le code et en vérifiant les fichiers de classe générés. Vous remarquerez un nouveau fichier de classe nommé Poly$1.class, qui correspond à la sous-classe anonyme créée lors de l'exécution.

Par conséquent, même si vous ne pouvez pas instancier directement une classe abstraite, vous pouvez effectivement obtenir le même résultat en créant un sous-classe anonyme.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)