본문 바로가기
반응형

프로그래밍42

PHP - 오버로딩 다른 대부분의 객체 지향 프로그래밍 언어에서 오버로딩(overloading)은 매개변수의 개수와 타입을 달리하여 같은 이름의 메소드를 중복하여 정의하는 것을 의미합니다. 하지만 PHP에서는 다른 언어와는 달리 프로퍼티나 메소드를 동적으로 '생성한다'는 의미로 오버로딩을 사용합니다. 이렇게 동적으로 생성된 멤버는 해당 클래스의 매직 메소드(magic method)를 통해 다양한 형태로 처리할 수 있습니다. 이때 오버로딩되는 메소드는 반드시 public으로 정의되어야만 합니다. 1. 프로퍼티 오버로딩(property overloading) PHP에서는 접근 불가 프로퍼티(inaccessible property)를 오버로딩하기 위해 다음과 같은 매직 메소드를 구현해야 합니다. 1. public void __s.. 2020. 4. 30.
PHP - 인터페이스 1. 추상 메소드(abstract method) 추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 이러한 추상 메소드는 선언부만이 존재하며, 구현부는 자식 클래스에서 오버라이딩하여 사용하는 것입니다. 문법 abstract 접근제어자 function 메소드이름(); 2. 추상 클래스(abstract class) PHP에서는 최소한 하나 이상의 추상 메소드를 포함하는 클래스를 추상 클래스(abstract class)라고 합니다. 반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메소드를 반드시 재정의해야 합니다. abstract class AbstractClass.. 2020. 4. 28.
PHP - 정적(static) 멤버 클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있게 됩니다. 이러한 프로퍼티와 메소드를 정적 멤버(static member)라고 합니다. 이러한 정적 멤버의 특징은 다음과 같습니다. static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없습니다. static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있습니다. 정적 메소드 내에서는 $this 의사 변수를 사용할 수 없습니다. class StaticMember { public static $staticProperty = "static property"; public static function showProperty() { echo se.. 2020. 4. 28.
PHP - 오버라이딩 오버라이딩(overriding)이란 이미 정의된 메소드를 같은 이름의 메소드로 다시 정의하는 것이라고 할 수 있습니다. 즉, 메소드 오버라이딩이란 상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것을 의미합니다. PHP에서는 부모 클래스의 메소드와 이름만 작성하면, 해당 메소드를 오버라이딩할 수 있습니다. class A { public $property = "class A"; public function showProperty() { echo $this->property." "; } } class B extends A // 클래스 A를 상속 받음. { public $property = "class B"; public function showProperty() // 클래스 A의 메소드를 오버라이딩 { .. 2020. 4. 28.
반응형