1: 상위 클래스의 객체에 하위 클래스 참조를 지불할 수 있지만 상위 클래스에서 상속되지 않은 하위 클래스의 멤버는 더 이상 표시되지 않습니다.
예:
Bus bus=new Bus(); Car car=bus;
그러나 car 인스턴스는 승객 수 p와 같이 버스의 상속되지 않은 필드를 참조할 수 없습니다.
2: this 및 super
this는 현재 클래스의 변수 또는 메소드를 나타내고, super는 현재 객체의 직접 상위 클래스의 변수 또는 메소드를 나타냅니다.
3: 다형성
동일한 이름일 수 있습니다. 여러 구현 상태가 있습니다. 동일한 클래스 내에서 동일한 이름과 다른 매개변수 목록을 가진 메소드를 가질 수 있습니다. 하위 클래스에는 상위 클래스와 동일한 이름을 가진 변수 및 메소드가 있을 수도 있습니다.
1) 재정의(Override), 하위 클래스가 상위 클래스로부터 동일한 이름의 매개변수 없는 함수를 상속하는 경우 새로 작성된 하위 클래스의 메서드가 상위 클래스의 메서드를 재정의합니다(반환 유형이 동일해야 함)
2) 오버로드 부모 클래스로부터 같은 이름의 매개변수화된 함수를 상속받고 메소드 매개변수가 다른 것을 오버로딩이라고 하며 메소드가 고유한 특성을 갖게 됩니다.
3) 현재 클래스의 동일한 이름으로 메소드를 덮어씁니다. 동일한 클래스에 동일한 이름의 메소드가 여러 개 있을 수 있으며, 어떤 메소드를 사용할지는 전달되는 매개변수의 수와 유형에 따라 결정됩니다.
오버라이딩과 오버로딩은 상위 클래스용이고 오버라이딩은 하위 클래스용입니다.
4: 추상 클래스 정의
추상 클래스에는 자체 데이터 멤버, 비추상 멤버 메서드 또는 추상 메서드가 있을 수 있습니다. 추상 메서드에는 함수 정의 부분만 있고 함수 본문은 없습니다.
하위 클래스가 추상 클래스를 상속하는 경우 모든 추상 메서드를 구현해야 합니다.
5: 인터페이스
Java는 단일 상속만 지원합니다. 다중 상속을 달성하기 위해 인터페이스가 설계되었습니다. 클래스는 하나의 직접 상위 클래스만 가질 수 있지만 여러 인터페이스를 구현할 수 있습니다.
인터페이스의 메서드에는 매개변수 목록과 반환 유형이 있을 수 있지만 메서드 본문은 없습니다.
인터페이스는 필드를 포함할 수 있지만 정적 및 최종으로 선언됩니다.
인터페이스의 필드는 인터페이스의 정적 저장 영역에만 저장될 수 있으며 인터페이스에 속하지 않습니다.
인터페이스의 메소드는 공개입니다
인터페이스를 확장하여 새 인터페이스를 생성하려면 키워드 확장을 사용하고, 인터페이스를 구현하려면 Implements를 사용하세요.
Java 인터페이스의 메소드는 추상 및 공개만 가능하며, Java 인터페이스는 다음과 같습니다. Java 추상 클래스보다 낫습니다. 더 추상적입니다.
6: 인터페이스와 추상 클래스의 차이점
1) 추상 클래스는 구현 방법을 제공할 수 있지만 인터페이스는 제공할 수 없습니다. 추상 클래스에 새 메서드를 추가하면 해당 클래스의 모든 하위 클래스가 동시에 이 메서드를 가져오지만, 인터페이스의 경우 이 인터페이스를 구현하는 모든 클래스가 이 메서드를 구현해야 합니다.
2) 추상 클래스는 하나만 상속할 수 있지만 여러 인터페이스를 구현할 수 있습니다.
"기본 적응 모드": Java 인터페이스가 맨 위에 있고 그 뒤에 추상 클래스가 있습니다.
3) 인터페이스는 클래스 또는 인터페이스별로 중첩될 수 있습니다.
7: 정적 클래스
는 정적 메서드, 정적 변수 및 정적 코드 블록을 정의하는 클래스입니다. 정적 클래스는 인스턴스화할 수 없으며 모든 멤버는 정적입니다. 이는 이 유형의 객체를 생성하지 않고도 이 메서드를 사용할 수 있음을 컴파일러에 알리는 것을 의미합니다. 일반적으로 정적 클래스는 작동되기 전에 인스턴스화되어야 합니다. 정적 클래스는 런타임 시 메모리에 로드되므로 초기화할 필요가 없고 인스턴스가 없으므로 클래스 내에서 사용할 수 없습니다.
위 내용은 Java에서 객체지향 프로그래밍을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!