PHP에서는 하위 클래스 가 상위 클래스를 상속하지만 상위 클래스의 속성과 메서드를 특정 변경해야 하는 상황이 발생합니다 확장을 사용하면 하위 클래스는 상위 클래스와 동일한 이름을 가진 속성과 메서드를 포함하여 속성과 메서드를 다시 작성할 수 있습니다. 그러나 상위 클래스의 메서드에 수백 또는 수천 줄의 내용이 포함되어 있는 경우 그런 다음 "상위 클래스 이름::method" 또는 "parent::method"만 사용하여 재정의된 메서드를 호출합니다. 상위 클래스인 경우 만 있으면 상위 클래스 를 다시 로드한 다음 확장해야 하는 문을 추가할 수 있습니다.
메서드 재정의
<?php class Person{ public $name; public function construct($name="" ){ $this->name=$name; } public function say(){ echo "我叫".$this->name ; } }?><?php class Student extends Person{ public $name; public function construct($name=""){ $this->name =$name; }//这里定义了一个和父类中同名的方法,将父类中的说话方法覆盖并重写 public function say(){ echo "我叫".$this->name .",今年25岁了" ; } }?>
메소드 및 액세스 권한 재정의
하위 클래스가 상위 클래스의 메서드를 재정의하는 경우 하위 클래스에서 재정의된 메서드에 대한 액세스 권한이 상위 클래스의 재정의된 메서드에 대한 액세스 권한보다 낮아서는 안 됩니다. 예를 들어 상위 클래스에 있는 메서드의 액세스 권한은 보호되고 하위 클래스에서 재정의된 메서드의 권한은 보호되거나 공개되어야 합니다. 상위 클래스의 메서드에 공용 권한이 있는 경우 하위 클래스에서 재정의할 메서드는 공용만 가능합니다. 즉, 하위 클래스에서 상위 클래스의 메서드를 재정의하는 경우 상위 클래스의 재정의된 메서드보다 더 높은 권한을 가져야 합니다.
재정의 시 매개변수 수
하위 클래스는 다음과 같이 상위 클래스와 다른 수의 매개변수를 가질 수 있습니다. 생성자 에는 추가 매개변수 $age가 추가됩니다.
<?phpclass Student extends Person{ public $name; public $age; public function construct($name="",$age=25){ $this->name =$name; $this->age =$age; } public function say(){ echo "我叫".$this->name .",今年".$this->age."岁了" ; } }?>
위의 예에서는 "메서드"를 재정의하여 확장을 달성했습니다.
그러나 이렇게 하면 위에서 언급한 문제가 해결되지만 실제 개발에서는 메서드가 하나의 코드일 수도, 여러 개의 코드일 수도 없습니다. 예를 들어 "Person" 클래스의 "say()" 메서드에는 100줄이 있습니다. 이 메서드를 덮어쓰고 원래 기능을 유지하고 좀 더 많은 기능을 추가하려면 원래 100줄의 코드와 몇 줄의 확장된 코드를 다시 작성해야 합니다. 이 경우 상위 클래스의 메서드는 원본 코드를 볼 수 없습니다. 이때 원본 코드를 어떻게 다시 작성합니까? 우리는 또한 해결책을 가지고 있습니다. 즉, 하위 클래스 메서드에서 상위 클래스의 재정의된 메서드를 호출할 수 있습니다. 즉, 재정의된 메서드의 원래 기능을 가져와서 자신만의 함수를 추가할 수 있습니다. . 하위 클래스의 메서드에서 상위 클래스의 재정의된 메서드 호출을 구현하려면:
하나는 상위 클래스의 "클래스 이름::"을 사용하여 상위 클래스의 재정의된 메서드를 호출하는 것입니다. 🎜> 하나는 "parent::" 메서드를 사용하여 상위 클래스에서 재정의된 메서드를 호출하는 것입니다.
메서드 확장 <?phpclass Student extends Person{
public $name;
public $age;
public function construct($name="",$age=25){
parent::construct($name,$age); $this->age =$age;
} public function say(){
parent::say(); echo ",今年".$this->age."岁了" ;
}
}?>
위에 설명된 것은 단지 상위 클래스의 속성과 메소드를 다시 로드하는 것일 뿐, 진정한 의미에서는 오버로딩할 수 없습니다. 확장된 경우 하위 클래스가 상위 클래스를 다시 로드한다고 할 수 있습니다. PHP에는 오버로딩이라는 단어도 있지만 일반적인 언어 중심 언어에서는 오버로딩의 의미가 다릅니다.
위 내용은 PHP 객체 지향 - 상위 클래스를 확장하는 하위 클래스의 샘플 코드 공유(상위 클래스를 다시 로드하는 하위 클래스)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
