대상 의 3 대 특성(봉인,계승,다 태)의---상속 성+복사
3423 단어 JAVA 기초
1.도입
계승 성의 가장 큰 특징 은 코드 의 재 활용 문 제 를 해결 하 는 것 이다.
왜 상속 이 필요 합 니까?관계 가 있다.예 를 들 어 학생 은 사람의 한 종류 에 속 하고 사람 이 가 진 속성 은 학생 이 모두 가지 고 있다.
2.상속 의 실현
JAVA 에서 계승 을 하려 면 extends 키 워드 를 사용 해 야 합 니 다.문법 은 다음 과 같 습 니 다. 클래스 하위 클래스 extends 부모 클래스{} ,하위 클래스:파생 클래스,부모 클래스:기본 클래스 또는 초 클래스
계승의 장점:
① 하위 클래스 는 부모 클래스 의 조작 을 계속 사용 할 수 있 고 코드 재 활용 에 속한다.
② 자 류 는 자신 만 의 기준 을 계속 확대 할 수 있다.
3.상속 의 제한
계승 은 자신의 요구 가 있다.
① JAVA 는 다 중 상속(C++언어 가 얼마나 계승 되 는 지-하나의 하위 클래스 가 여러 부모 클래스 의 조작 을 동시에 계승 할 수 있 는 지)을 허용 하지 않 으 며,이 경우 다 중 상속 을 사용 할 수 있다.다 층 상속 을 사용 할 때 층수 의 제한 이 없 지만 개발 측면 에서 볼 때 3 층 을 초과 하지 않 는 것 이 좋 습 니 다.왜냐하면-여러 사람 이 말 을 전하 면 실수 하기 쉽 기 때 문 입 니 다.
② 하위 클래스 는 부모 클래스 의 모든 작업 을 계승 하지만 모든 개인 작업 은 암시 적 계승 에 속 하고 모든 비 개인 작업 은 디 스 플레이 계승 에 속 합 니 다.즉,하위 클래스 에 서 는 부모 클래스 에 대해 개인 속성(private)을 직접 방문 할 수 없고 개인 속성 만 간접 적 으로 방문 할 수 있 습 니 다.여기 서 개인 속성 은 서로 다른 클래스 에 해당 합 니 다.
③ 하위 클래스 의 대상 구 조 를 구축 하기 전에 반드시 부모 클래스 의 구 조 를 기본 으로 호출 하여 부모 클래스 의 대상 이 먼저 예화 되 고 그 다음 에 사례 화 된 하위 클래스 의 대상 을 확보한다.
!!“super();” 부계 에 해당 하 며,부계 에 인삼 구조 가 있 는 지 없 는 지 는 차이 가 없다.부모 클래스 에 인삼 구조 방법 이 없다 면 슈퍼()를 사용 해 야 합 니 다.부류 의 유 참 구조 방법 을 명 확 히 호출 하 다.
class A{
public A(String title){
System.out.println("A !");
}
}
class B extends A{
public B(String title){
super(title);
System.out.println("B ");
}
}
public class TestDemo4 {
public static void main(String args[]){
new B("Hello!!!!");
}
}
super() : 주로 하위 클래스 에서 부모 클래스 의 구조 방법 을 호출 하 는데 이 줄 의 문 구 는 반드시 하위 구조 방법의 첫 줄 에 두 어야 한다.이 점 은 this()와 비슷 하 다.
슈퍼()와 this()는 동시에 나타 나 지 않 습 니 다.this()가 있 으 면 슈퍼()가 존재 하지 않 습 니 다.하위 클래스 가 어떻게 되 는 지 상관 하지 않 습 니 다.하위 클래스 의 구조 호출 전에 반드시 부모 클래스 구 조 를 실행 하고 부모 클래스 의 대상 이 초기 화 된 후에 야 하위 클래스 의 대상 이 됩 니 다.()하위 클래스 의 대상 을 예화 하 는 것 은 부모 클래스 의 대상 도 예화 하고 하위 클래스 의 대상 도 예화 하 는 것 이다.)
수업 시간 78 부터 수업 시간 80 까지
복사
· 계승 성의 주요 특징 은 하위 클래스 가 부모 클래스 의 기 존 기능 에 따라 기능 을 확장 할 수 있다 는 것 이다.그러나 하위 클래스 가 속성 이나 방법 을 정의 할 때 하위 클래스 가 정의 하 는 속성 과 방법 은 부모 클래스 의 동명 이인 과 같 을 수 있다.다음은 이 문 제 를 이해 하기 위해 덮어 쓰 는 것 이다.
· 방법 덮어 쓰기:하위 클래스 는 부모 클래스 방법 과 이름 이 같 고 매개 변수의 유형 과 개수 가 같 으 며 반환 값 이 같은 방법 을 정의 합 니 다
· 복사 결과 의 분석 요소:
① 실례 화 된 것 이 어떤 종류 인지 관찰 하기;
② 이 실례 화 된 클래스 에서 호출 된 방법 이 이미 복사 되 었 는 지,복사 되 지 않 았 다 면 부모 클래스 로 호출 되 었 는 지,그렇지 않 았 다 면 하위 클래스 로 호출 되 었 습 니 다.
· 언제 덮어 써 야 합 니까?복사 사용 원칙(여 기 는 수 동적 이 고 주동 적 인 것):
부모 류 의 방법 기능 이 부족 하 다 는 것 을 발견 하면(공책 류 에 적합 하지 않다)방법 이름 을 사용 해 야 할 때 는 복사 라 는 개념 을 사용 해 야 한다.하위 클래스 복사 방법 은 부모 클래스 보다 엄격 한 접근 제어 권한(Public>default>private)을 가 질 수 없습니다.즉,Public 권한 이 가장 크 고 여유 가 있 으 며 private 권한 이 가장 적 고 엄격 합 니 다.부모 클래스 의 방법 이 Public 성명 을 사용한다 면 하위 클래스 는 Public 를 사용 할 수 밖 에 없습니다.부류 의 방법 은 default 성명 을 사용 하면 하위 클래스 는 default 또는 Public 성명 만 사용 할 수 있 습 니 다.!!!99%상황 방법 은 모두 Public!!!
부모 클래스 방법 이 private 성명 을 사용 하면 하위 클래스 에 있어 서 이 방법 은 보이 지 않 습 니 다.하위 클래스 에서 똑 같 고 복사 요구 에 부합 되 는 방법 을 정의 하 더 라 도 복사 가 발생 할 수 없습니다.이때 하위 클래스 가 쓴 방법 은 하위 클래스 가 스스로 새로운 방법 을 정의 한 셈 이다.
***********기본 상황 하위 클래스 에서 호출 할 수 있 는 것 은 반드시 복사 한 방법 입 니 다.하위 클래스 에서 부모 클래스 에 이미 있 는 이불 류 를 덮어 쓰 는 방법 을 명확 하 게 호출 하기 위해'슈퍼.방법()'*********************를 사용 할 수 있 습 니 다.
·슈퍼.방법() ...과 this.방법()의 차이 점:
this.방법():이 클래스 에 호출 할 방법 이 있 는 지 먼저 찾 습 니 다.존재 하면 직접 호출 하고 없 으 면 컴 파일 오류 가 발생 합 니 다.
슈퍼.방법():하위 클래스 가 아 닌 부모 클래스 를 호출 하 는 방법 을 명 확 히 나타 낸다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 로 데이터베이스 시트 에 따라 실체 클래스 생 성텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.