PHP의 다형성 설명 [예제 포함]
게시 됨: 2021-02-19PHP 프로그래밍 언어는 다른 기본 구조와 함께 객체 지향 프로그래밍(OOP) 패러다임을 따릅니다. OOP의 가장 중요한 기능 중 하나는 다형성입니다. 일반적으로 다형성은 많은 것을 의미하는 그리스어 poly와 형태를 의미하는 morphism에서 파생됩니다. OOP의 다형성은 단일 인터페이스에서 다양한 기능을 가진 클래스를 생성할 수 있는 개념입니다.
일반적으로 컴파일 타임(오버로딩)과 런타임(오버라이드)의 두 가지 유형이 있지만 PHP의 다형성은 오버로딩, 즉 컴파일 타임 다형성을 지원하지 않습니다. PHP에서 다형성의 가장 중요한 이점은 모든 코드가 동일한 방식으로 사용되기 때문에 어떤 코드가 어떤 클래스에서 작성되는지 정의하는 기술에 대해 걱정할 필요가 없다는 것입니다.
객체 지향 PHP 다형성 의 이해하기 쉬운 예 는 다양한 기하학적 모양의 영역입니다. 길이, 너비, 반경 및 기타 매개변수가 다른 여러 모양이 있지만 모든 그림에는 면적이 있습니다. 개념과 구현 방법을 더 잘 이해하기 위해 PHP의 다양한 다형성 예제를 살펴보므로 이해하지 못했다고 걱정하지 마십시오.
목차
PHP에서 다형성을 구현하는 방법?
PHP의 다형성은 인터페이스나 추상 클래스를 사용하여 구현할 수 있습니다. 우리는 두 가지 방법으로 그것을 시행하는 예를 살펴볼 것입니다.
인터페이스에서 구현하기 위한 PHP의 다형성 예제
인터페이스를 확장하는 모든 클래스에 대한 청사진으로 간주할 수 있습니다. 그것들은 하나의 주요 차이점만 있는 클래스와 유사합니다. 인터페이스 내에서 메서드 이름과 인수를 선언하고 정의할 수 있지만 메서드 코드를 작성할 수는 없습니다. 인터페이스를 구현하는 모든 클래스는 모든 메서드를 구현합니다. 인터페이스 구문은 다음과 같습니다.
인터페이스 예시인터페이스{
공개 함수 메서드 이름();
}
이제 인터페이스에 대해 알았으므로 인터페이스에서 PHP의 다형성을 구현하는 방법을 살펴보겠습니다.
<?php
인터페이스 ShapeExmp{
공개 함수 calcArea();
}
클래스 SquareExmp는 ShapeExmp를 구현합니다.{
개인 $측;
공개 함수 __construct($side){
$this->side = $side;
}
공개 함수 calcArea(){
$area = $this->side * $this->side;
echo "정사각형 면적 = ".$area;
}
}
클래스 RectangleExmp 구현 ShapeExmp{
개인 $width1;
개인 $height1;
공개 함수 __construct($width1,$height1){
$this->width1 = $width1;
$this->height1 = $height1;
}
공개 함수 calcArea(){
$area = $this->width1 * $this->height1;
echo “<br>사각형 면적 = “.$area;
}
}
클래스 TriangleExmp 구현 ShapeExmp{
개인 $cons1;
개인 $width1;
개인 $height1;
공개 함수 __construct($cons1,$width1,$height1){
$this->cons1 = $cons1;
$this->width1 = $width1;
$this->height1 = $height1;
}
공개 함수 calcArea(){
$area = $this->cons1 * $this->width1 * $this->height1;
echo “<br>삼각형의 면적= “.$area;
}
}
$squ = 새로운 SquareExmp(8);
$squ->calcArea();
$rect = 새로운 RectangleExmp(10,15);
$rect->calcArea();
$tri = 새로운 TriangleExmp(0.5,10,12);
$tri->calcArea();
?>
산출:
정사각형 면적 = 64
직사각형 면적 = 150
삼각형의 넓이= 3
위의 예에서 볼 수 있듯이 우리는 인터페이스를 통해 PHP에서 다형성을 구현했습니다. 우리는 정사각형, 삼각형 및 직사각형의 세 가지 모양의 영역을 구성하고 얻었습니다. 구현된 클래스는 계속 변경되고 인수도 변경되지만 결과는 항상 모양의 영역입니다. 마찬가지로 원, 평행사변형, 타원 등과 같은 다른 모양의 면적을 구성하고 계산할 수도 있습니다.
추상 클래스에서 구현하기 위한 PHP의 다형성 예제
PHP의 추상 클래스는 메서드가 정의되어 있지만 코드가 없는 부모 클래스입니다. 그것들은 "abstract" 키워드의 도움으로 정의됩니다. 다른 클래스를 상속하는 데만 사용할 수 있습니다. 모든 추상 클래스에는 하나 이상의 추상 메서드가 있습니다. 이러한 클래스는 자식 클래스가 메서드를 같은 이름으로 채우도록 요구합니다. 따라서 다른 자식 클래스가 같은 방식으로 메서드를 사용하므로 PHP에서 다형성을 구현합니다. PHP의 다형성 예제를 통해 이것을 더 잘 이해합시다.
<?php
추상 클래스 shapeExmp{
추상 보호 함수 calcArea();
}
클래스 직사각형Exmp 확장 shapeExmp{
변수 $x,$y;
공개 함수 __construct($x, $y){
$this->x=$x;
$this->y=$y;
}
공개 함수 calcArea(){
$a=$this->x*$this->y;
반환 $a;
}
}
클래스 circleExmp는 shapeExmp를 확장합니다{
변수 $r;
공개 함수 __construct($r){
$this->r=$r;
}
공개 함수 calcArea(){
$pi=3.142;
$a=pow($this->r,2)*$pi;
반환 $a;
}
}
클래스 squareExmp는 shapeExmp를 확장합니다{
변수 $s;
공개 함수 __construct($s){
$this->s=$s;
}
공개 함수 calcArea(){
$a=$this->s * $this->s;
반환 $a;
}
}
$rect=새 사각형Exmp(8,10);
$area=$rect->calcArea();
echo "사각형 영역= $area <br>";
$circ=새로운 circleExmp(5);
$area=$circ->calcArea();
echo "원 지역=$area<br>";
$squ=새로운 squareExmp(7);
$area=$squ->calcArea();
echo "정사각형 면적= $area <br>";
?>
산출:
직사각형 면적= 80
원 면적=78.55
정사각형 면적=49
위의 예에서 볼 수 있듯이 먼저 추상 클래스 shapeExmp를 만들었습니다. 그런 다음 추상 함수 calcArea()를 그 안에 정의했습니다. 원, 직사각형 및 정사각형 영역을 계산하기 위해 추상 클래스에서 해당 클래스를 파생하고 추상 함수 calcArea()를 사용했습니다. 마찬가지로 추상 클래스를 사용하여 PHP에서 다형성을 구현하고 런타임 중에 사용할 수 있습니다.
확인 : Github의 PHP 프로젝트
세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
이것은 PHP의 다형성에 대한 모든 의심을 해소했을 것입니다. IDE 또는 온라인 PHP 컴파일러를 사용하여 다양한 방법으로 사용해 볼 수 있습니다. PHP는 널리 퍼진 프로그래밍 언어로 성장했습니다. PHP 에는 수많은 직업 기회가 있습니다 . 대화형 웹 개발 에 적합 하며 풀스택 개발자가 되는 법을 배우는 데 필수적입니다.
풀스택 개발 경력을 쌓고 싶다면 풀스택 소프트웨어 개발 과정에서 upGrad와 IIIT-B의 Executive PG Program을 확인하십시오 . 이 과정은 16가지 다른 프로그래밍 언어와 도구에 대한 교육을 제공합니다. 과정 중에 완료해야 하는 9개 이상의 프로젝트 과제와 함께 upGrad는 배치를 보장합니다. 강력하고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 방법을 배우는 데 도움이 되는 500시간 이상의 교육 자료를 제공합니다.
객체지향 프로그래밍이란?
프로그래밍에서 다형성이란 무엇입니까?
다형성은 하나 이상의 형태를 가질 수 있는 능력입니다. 예를 들어 강아지는 다리가 4개지만 다리가 다릅니다. 이것은 같은 물체의 다른 형태입니다. 컴퓨터 프로그래밍에서 다형성은 다른 입력과 단일 출력을 갖는 능력입니다. 예를 들어 Person, Worker 및 Customer의 클래스가 있고 각 개인은 서로 다른 입력을 가질 수 있습니다. 사람마다 이름, 주소, 전화번호가 다르기 때문에 입력이 다릅니다. 그러나 출력은 Person 클래스인 모든 항목에 대해 동일합니다.
프로그래밍에서 클래스와 객체는 어떻게 작동합니까?
클래스는 객체 지향 프로그래밍(OOP)의 기본 단위입니다. 그것들은 개체에 대한 청사진이며 개체를 생성하고 개체의 동작을 정의하는 데 사용됩니다. 클래스는 OOP의 보편적인 빌딩 블록으로 생각할 수 있습니다. 특정 작업이나 상황에 특정한 개체를 만드는 데 사용됩니다. 그러나 실제 세계와 달리 클래스는 거의 모든 시간과 순서로 만들 수 있습니다. 클래스가 어떻게 사용될지 알기도 전에 클래스를 생성할 수 있습니다. "익명" 클래스 인스턴스화라고 하는 프로세스입니다.