Maison php教程 php手册 PHP 面向对象 final类与final方法

PHP 面向对象 final类与final方法

Jun 06, 2016 pm 08:33 PM
méthode finale cours final

如果我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。

final---用于类、方法前。
final类---不可被继承。
final方法---不可被覆盖。
final类不能被继承。
如果我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型。

代码如下:

//声明一个final类Math
final class Math{
public static $pi = 3.14;

public function __toString(){
return "这是Math类。";
}
}
$math = new Math();
echo $math;

//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
}
//执行会出错,final类不能被继承。

?>

程序运行结果

代码如下: Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 14

final方法不能被重写
如果不希望类中的某个方法被子类重写,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符。

如果这个方法被子类重写,将会出现错误。
代码如下:

//声明一个final类Math
class Math{
public static $pi = 3.14;
public function __toString(){
return "这是Math类。";
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
public final function max($a,$b){}
}
//执行会出错,final方法不能被重写。

?>


程序运行结果

代码如下: Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16
Déclaration de ce site Web
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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelles sont les techniques d'implémentation de l'héritage forcé des classes finales proxy dans la programmation Java ? Quelles sont les techniques d'implémentation de l'héritage forcé des classes finales proxy dans la programmation Java ? Sep 06, 2023 am 10:28 AM

Quelles sont les techniques d’implémentation de l’héritage forcé des classes finales proxy dans la programmation Java ? En programmation Java, une classe finale fait référence à une classe qui ne peut pas être héritée. Cette limitation provoque parfois une certaine confusion, notamment lorsque l'on souhaite étendre en fonction d'une classe finale. Cependant, il existe une technique permettant d’obtenir un héritage forcé des classes finales proxy. Cet article présente cette technique et la démontre avec des exemples de code. Pour comprendre la technique de l’héritage forcé vers les classes finales proxy, nous devons d’abord clarifier le concept de classes finales.

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'augmenter l'évolutivité du code ? Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'augmenter l'évolutivité du code ? Sep 06, 2023 pm 01:07 PM

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'augmenter l'évolutivité du code ? Dans la programmation orientée objet traditionnelle, nous utilisons souvent l'héritage pour réaliser la réutilisation et l'extension du code. Cependant, il existe une classe spéciale dans le langage Java, la classe finale, qui interdit aux autres classes d'en hériter. Ceci est très utile dans les situations où vous devez limiter le comportement d'une classe ou protéger les détails d'implémentation d'une classe, mais cela pose également certains défis en matière d'évolutivité du code. Dans de tels cas, nous pouvons utiliser des proxys d'héritage forcé pour contourner le fichier final.

Comment utiliser la classe finale du proxy d'héritage forcé pour réduire le couplage du code dans la programmation Java ? Comment utiliser la classe finale du proxy d'héritage forcé pour réduire le couplage du code dans la programmation Java ? Sep 06, 2023 am 08:40 AM

Comment utiliser la classe finale du proxy d'héritage forcé pour réduire le couplage du code dans la programmation Java ? En programmation Java, nous sommes souvent confrontés au problème d’un couplage de code excessif. Un couplage élevé signifie qu'une classe dépend des détails d'implémentation spécifiques d'une autre classe, ce qui rend notre code difficile à maintenir et à étendre. Afin de résoudre ce problème, on peut utiliser la technique d’héritage forcé de la classe finale proxy pour réduire le couplage du code. Cet article explique comment utiliser cette technique et l'illustre avec des exemples de code. Tout d’abord, nous devons comprendre ce qu’est f

Comment utiliser l'héritage forcé pour proxy les classes finales en Java pour augmenter la lisibilité du code ? Comment utiliser l'héritage forcé pour proxy les classes finales en Java pour augmenter la lisibilité du code ? Sep 06, 2023 am 11:57 AM

Comment utiliser l'héritage forcé pour proxy les classes finales en Java pour augmenter la lisibilité du code ? Introduction : En programmation Java, nous rencontrons souvent le besoin d'étendre les classes existantes. Cependant, avec les classes finales, nous ne pouvons pas en hériter directement, ce qui limite notre liberté lors de l'extension et de la modification de ces classes. Afin de résoudre ce problème, nous pouvons utiliser l'héritage forcé des classes finales proxy pour augmenter la lisibilité et la maintenabilité du code. Cet article explique comment utiliser cette technique et fournit un exemple de code pertinent. 1. Quoi

Comment utiliser la classe finale du proxy d'héritage forcé pour résoudre les problèmes de conception courants dans la programmation Java ? Comment utiliser la classe finale du proxy d'héritage forcé pour résoudre les problèmes de conception courants dans la programmation Java ? Sep 06, 2023 am 08:33 AM

Comment utiliser la classe finale du proxy d'héritage forcé pour résoudre les problèmes de conception courants dans la programmation Java ? En programmation Java, les classes finales sont conçues comme des classes qui ne peuvent pas être héritées. Cependant, nous pouvons parfois avoir besoin d'étendre une classe finale pour résoudre certains problèmes de conception. Dans ce cas, nous pouvons utiliser l’héritage forcé des agents pour résoudre ce problème. Cet article explique comment utiliser l'héritage forcé pour proxy les classes finales et fournit des exemples de code. 1. Contexte du problème En Java, le mot-clé final est utilisé pour

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'obtenir une meilleure maintenance et des mises à niveau du code ? Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'obtenir une meilleure maintenance et des mises à niveau du code ? Sep 06, 2023 am 09:43 AM

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'obtenir une meilleure maintenance et des mises à niveau du code ? Introduction : En programmation Java, nous rencontrons souvent des situations où nous devons hériter et réécrire certaines classes. Cependant, parfois la classe dont nous voulons hériter est déclarée finale et ne peut pas être héritée, ce qui entraîne certains problèmes de maintenance et de mise à niveau du code. Cet article présentera une solution pour obtenir une meilleure maintenance et mise à niveau du code en forçant l'héritage des classes finales du proxy. Texte : En Java, si une classe est déclarée comme

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'améliorer la réutilisabilité du code ? Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'améliorer la réutilisabilité du code ? Sep 06, 2023 pm 01:15 PM

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin d'améliorer la réutilisabilité du code ? En programmation Java, nous rencontrons souvent des situations où nous devons réutiliser une certaine classe. À l'heure actuelle, la réutilisabilité du code devient très importante. Normalement, nous pouvons réaliser la réutilisation du code via l'héritage, mais dans certains cas particuliers, la classe héritée peut être déclarée comme classe finale et ne peut pas être héritée. Alors, avons-nous d’autres moyens de réutiliser le code ? La réponse est oui - utilisez l'héritage forcé pour proxy final

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin de protéger la sécurité du code ? Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin de protéger la sécurité du code ? Sep 06, 2023 pm 03:57 PM

Comment utiliser l'héritage forcé pour proxy les classes finales en Java afin de protéger la sécurité du code ? Introduction : En Java, le mot-clé final est utilisé pour modifier les classes, les méthodes et les variables. Lorsqu'une classe est déclarée finale, cela signifie qu'elle n'est pas héritable, c'est-à-dire que les autres classes ne peuvent pas en hériter. Cependant, dans certains cas, nous pouvons avoir besoin d'autoriser d'autres classes à hériter de notre classe, mais nous ne souhaitons pas que d'autres classes accèdent ou modifient directement certains codes critiques. A ce stade, nous pouvons utiliser la méthode d'héritage forcé de la classe finale proxy pour protéger le code.

See all articles