看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。 - Class Interface Trait 目的 封装一类对象的属性和行为。 抽象一类对象的行为准则,而不关注其具体实现。 解决单继承的限制。(历史解决方法是使用混入类(Mixin)) Class class Cla
看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。
- | Class | Interface | Trait |
---|---|---|---|
目的 | 封装一类对象的属性和行为。 | 抽象一类对象的行为准则,而不关注其具体实现。 | 解决单继承的限制。(历史解决方法是使用混入类(Mixin)) |
Class | class ClassA extends ClassB | class Class implements Interface |
class Class { use Trait; } |
Interface | - | Interface1 extends Interface2 | - |
Trait | - | - |
trait Trait1 { use Trait2; } |
*注:以上是三者可使用的关系,以下是其具体区别! | |||
abstract | 类前(抽象类),方法前(抽象方法) | - | 方法前(抽象方法) |
final | 类前(不可继承),方法前(不可重写) | - | 方法前(不可重写) |
const | 有类常量 | 有接口常量 | - |
static | 静态变量,静态方法 | 静态方法 | 静态变量,静态方法 |
访问控制 public protected private |
继承可改变访问控制 实现接口只能用public use Trait可以用as改变访问控制。 |
- | use Trait可以用as改变访问控制 |
同名变量 |
覆盖(extends Class) 报错(use Trait) |
- | 报错(use Trait) |
同名方法 |
覆盖(extends) 报错(use Trait) 可用insteadof或as解决 |
报redeclare错(extends Interface) | 报错(use Trait) 可用insteadof或as解决 |
*注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。 |
( 完 )
版权所有:老白经 转载请保留来源信息。 >
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
2 몇 주 전ByDDD
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

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

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
