Php OOP 파트-2
1-부모 생성자
<?php
class Student{
public $age;
public $name;
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
public function profile()
{
# code...
echo "His name is {$this->name} and age is {$this->age}";
}
}
여기서 우리는 2개의 클래스를 취하고 2개의 속성이 생성자에 값을 할당하고 프로파일 메서드에 에코합니다.
그럼 우리
class Adminstration extends Student{
public $grade;
public function __construct($name,$age,$grade){
$this->grade=$grade;
parent::__construct($name,$age);
}
public function profile()
{
echo "His name is {$this->name} and age is {$this->age} and
grade is {$this->grade}";
}
}
$admin=new Adminstration("Tanzim",25,4);
$admin-> adminprofile();
여기에서 관리 클래스의 관리 클래스로 학생 클래스를 확장하여 새 속성 $grade를 할당한 다음 구성 메서드 내부에서 parent::construct를 사용하여 여기에서 부모 클래스인 Student의 생성자 메서드 내부 속성에 액세스합니다.
2. 정적 클래스
<?php
class Student{
public static $age=15;
public static function profile(){
echo "His age is ".self::$age;
}
}
echo Student::$age;
echo Student::profile();
?>
정적 속성과 메서드는 클래스를 인스턴스화하지 않고 액세스할 수 있는 것입니다. 여기서 age는 정적 속성이고 프로필은 정적 함수입니다.
우리는 그냥 속성에 액세스 할 수 있습니다
echo Student::$age;
public static function profile(){
echo "His age is ".self::$age;
}
echo Student::profile();
정적 함수 내부의 속성에 액세스하려면 self 키워드를 사용해야 합니다.
<?php
class Student{
public $age;
public $name;
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
public function profile()
{
# code...
echo "His name is {$this->name} and age is {$this->age}";
}
}
class Adminstration extends Student{
public $grade;
public function __construct($name,$age,$grade){
$this->grade=$grade;
parent::__construct($name,$age);
}
public function profile()
{
# code...
echo "His name is {$this->name} and age is {$this->age} and grade is {$this->grade}";
}
}
$admin=new Adminstration("Tanzim",25,4);
$admin-> adminprofile();
메서드 재정의
부모 클래스를 확장하는 자식 클래스를 인스턴스화하고 부모 클래스와 자식 클래스 또는 상속 된 클래스가 클래스와 동일한 이름의 메서드를 갖는 경우 속성과 메서드를 상속하도록 부모 클래스를 확장하면 부모 클래스의 메서드를 재정의하고 같은 메서드 이름 자식 클래스
<?php
class Student{
public function profile(){
echo "Profile from student class";
}
}
class Adminstration extends Student{
// public function profile(){
// echo "Profile from adminstration class";
// }
}
$stu=new Student;
// $stu->profile();
$admin=new Adminstration;
$admin->profile();
여기서 우리는 부모 클래스의 속성과 메서드를 상속하는 자식 클래스인 Administration 클래스를 봅니다. 여기에서 자식 클래스 Administration을 인스턴스화하고 부모 클래스의 메서드를 제공하는 메서드 프로필을 지적할 때 볼 수 있습니다.
그런 다음 클래스를 작성하면
<?php
class Student{
public function profile(){
echo "Profile from student class";
}
}
class Adminstration extends Student{
public function profile(){
echo "Profile from adminstration class";
}
}
$stu=new Student;
$admin=new Adminstration;
$admin->profile();
여기에서 부모 클래스를 확장하는 자식 클래스인 Adminstration을 볼 수 있으며 여기에서 자식 클래스와 부모 클래스 모두 profile이라는 이름의 동일한 메서드를 가집니다. 이 경우 이것이 우리가 얻는 출력입니다.
여기에서 자식 클래스의 메서드가 부모 클래스의 속성을 재정의하고 자식 클래스에서 속성을 가져오는 것을 볼 수 있습니다.
추상 클래스
추상 클래스는 다른 클래스가 확장해야만 사용할 수 있는 클래스입니다.
<?php
abstract class Student{
public function profile(){
echo "Profile";
}
}
$tech=new Student;
$tech->profile();
?>
여기서 클래스를 인스턴스화하면 이 오류가 발생합니다.
하지만 우리가 쓴다면
<?php
abstract class Student{
public function profile(){
echo "Profile";
}
}
class Teacher extends Student{
}
$tech=new Student;
$tech->profile();
?>
여기서 클래스를 확장하고 자식 클래스를 인스턴스화하면 부모 클래스에 액세스할 수 있습니다. 부모 클래스에서 프로필을 인쇄합니다.
그래서 php oop의 파트 2는 다음 파트에서 인터페이스, 특성 등과 같은 몇 가지 개념에 대해 논의할 것입니다.
Reference
이 문제에 관하여(Php OOP 파트-2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tanzimibthesam/php-oop-part-2-1olb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)