자바 계승 의 기본 개념 및 제한 총화
계승: 기 존의 기능 을 확장 하 는 것 입 니 다. 계승 에서 자 류 와 부 류 로 나 뉘 는데 부 류 는 초 류 (슈퍼 클 라 스) 라 고도 부 르 고 자 류 는 파생 류 라 고도 부 릅 니 다.
계승의 기본 문법: class 하위 클래스 extends 부모 클래스 {}
상속 의 제한: 1) 자바 에 서 는 다 중 상속 을 허용 하지 않 습 니 다. 한 개의 하위 클래스 는 하나의 부모 클래스 만 계승 할 수 있 고 여러 개의 부모 클래스 를 계승 할 수 없습니다.2) 자바 에서 다 중 계승 허용;3) 상속 중성자 류 에 서 는 부류 의 개인 구성원 을 방문 할 수 없고 공공 조작 만 계승 할 수 있다.그러나 사유 구성원 은 공공 방법 을 통 해 방문 할 수 있다.
둘째, this 키워드 와 슈퍼 키워드 의 차이
this 는 자바 에서 다음 과 같은 개념 을 나타 낸다.
1) 클래스 의 속성 호출: this. 속성
2) 클래스 에서 호출 하 는 방법: this. 방법 ()
3) 클래스 의 구조 방법 호출: this ()
4) 현재 대상: this
모든 구조 방법 은 대상 이 조작 하기 전에 가장 먼저 호출 되 어야 하기 때문에 this 호출 클래스 의 다른 구조 방법 을 사용 할 때 이 코드 는 구조 방법의 첫 줄 에 두 어야 합 니 다.주의: this 호출 구조 방법 을 사용 할 때 최소한 하나의 구조 방법 이 this () 호출 을 사용 하지 않 았 어야 하 며, 이 방법 은 프로그램의 출구 로 서 일반적인 상황 에서 이 출구 는 무 참 구조 방법 으로 정의 된다.
No
비교 점
this
super
1
속성
this. 속성 은 이 클래스 의 속성 을 표시 합 니 다. 하위 클래스 에서 찾 을 수 없 으 면 부모 클래스 에서 계속 찾 습 니 다.
슈퍼. 속성 은 부모 클래스 의 속성 을 직접 찾 습 니 다.
2
방법.
This. 방법 () 은 이 클래스 를 호출 하 는 방법 입 니 다. 하위 클래스 에서 찾 을 수 없 으 면 부모 클래스 에서 찾 습 니 다.
슈퍼. 방법 () 은 부 류 를 직접 찾 는 방법 을 나타 낸다.
3
구조 방법
이 클래스 의 다른 구조 방법 을 호출 할 수 있 지만, this () 를 사용 하지 않 는 구조 방법 이 있어 야 합 니 다.
하위 클래스 에서 부모 클래스 의 구조 방법 을 호출 하고, 하위 클래스 는 아무리 인 코딩 을 해도 부모 클래스 의 구조 방법 을 호출 해 야 한다.
구 조 를 호출 할 때 는 반드시 구조 방법 첫 줄 에 두 어야 한다.
하위 구조 방법 첫 줄 에 두 어야 합 니 다.
4
특이점
현재 개체
이런 개념 이 없다
No
비교 점
무 거 운 짐
복사
1
영어 단어
overload
Override
2
콘 셉 트
방법 이름 이 같 고 매개 변수 가 다 릅 니 다 (매개 변수 나 개수)
방법 이름, 매개 변수, 반환 값 이 모두 같 습 니 다.
3
주의 점
-
접근 권한 이 작 아 지면 안 됩 니 다.
4
범위.
같은 부류 에서 발생 하 다
상속 클래스 에서 발생
No
비교 점
추상 류
인터페이스
1
결성
추상 적 방법, 일반 방법, 상수, 변수, 구조 방법, 전체 상수
추상 적 방법, 전역 상수
2
정의.
Abstract
Interface
3
하위 클래스
하위 클래스 는 extends 키 워드 를 통 해 추상 적 인 방법 을 계승 합 니 다.
하위 클래스 는 implements 를 통 해 인 터 페 이 스 를 실현 합 니 다.
4
제한 하 다.
하나의 자 류 는 하나의 추상 류 만 계승 할 수 있다.
하나의 하위 클래스 는 여러 개의 인 터 페 이 스 를 실현 할 수 있다.
5
관계.
하나의 추상 류 는 여러 개의 인 터 페 이 스 를 실현 할 수 있다.
하나의 인 터 페 이 스 는 하나의 추상 류 를 계승 할 수 없고 여러 개의 인터페이스 만 실현 할 수 있다.
하나의 추상 류 에서 여러 개의 인터페이스 가 있 을 수 있다.
하나의 인터페이스 에서 도 여러 개의 추상 류 가 있 을 수 있다.
6
디자인 모드
템 플 릿 모드
공장 모드, 대리 모드
두 개 를 결합 하면 어댑터 모드 를 실현 할 수 있다.
7
실례 화
모두 대상 의 다 태 성 을 통 해 하위 클래스 를 통 해 대상 의 실례 화 조작 을 한다
8
제한 을 실현 하 다
상속 제한
이 제한 없 음
9
특성
-
기준
셋째, 과부하 와 복사 의 차이
4. 하위 클래스 의 초기 화 과정
자 류 는 실례 화 할 때 가장 먼저 호출 되 는 것 은 영원히 부계 의 구조 방법 이다.구조 방법의 역할 은 클래스 의 속성 을 초기 화 하 는 것 이다.실례 화 자 류 를 만 들 기 전에 먼저 부 류 를 실례 화한 다.실제 코드 에서 하위 클래스 의 구조 방법 에 부모 클래스 를 호출 하 는 구조 방법 이 표시 되 지 않 으 면 기본적으로 슈퍼 () 방법 을 추가 하여 부모 클래스 의 무 참 구조 방법 을 호출 합 니 다.이 때 부모 클래스 에 인삼 이 없 는 구조 방법 이 없 으 면 프로그램 컴 파일 에 오류 가 발생 할 수 있 습 니 다.이 때 하위 클래스 구조 함수 에 슈퍼 (매개 변수) 를 추가 하여 부모 클래스 에 매개 변 수 를 가 진 구조 방법 을 호출 하거나 부모 클래스 에 인삼 이 없 는 구조 방법 을 추가 합 니 다.
다섯, 하나의 개발 원칙
프로그램 개발 에서 하나의 원칙 을 기억 해 야 한다. 하 나 는 이미 실 현 된 종 류 를 계승 하지 말고 추상 적 인 종 류 를 계승 하거나 인 터 페 이 스 를 실현 해 야 한다.
여섯, 중요 한 문제
현재 배열 클래스 (Array) 를 정의 해 야 합 니 다. 이 클래스 에는 전체 배열 이 포함 되 어 있 지만 이 전체 배열 의 크기 는 동적 으로 분 배 됩 니 다.즉, 모든 크기 는 프로그램 에 의 해 결정 되 고 다음 두 개의 하위 클래스 를 실현 합 니 다.
u 반전 클래스: 배열 의 내용 을 반전 시 켜 배열 할 수 있 습 니 다.
u 정렬 클래스: 배열 을 정렬 할 수 있 습 니 다.
class Array{
private int[] temp = null ; //
private int foot ; //
public Array(int len){
if(len>0){
this.temp = new int[len] ; // 0,
}else{
this.temp = new int[1] ; // 1
}
}
public boolean add(int t){ //
if(this.foot
class SortArray extends Array{ //
public SortArray(int len){ //
super(len) ;
}
public int[] getArray(){
java.util.Arrays.sort(super.getArray()) ; //
return super.getArray() ; //
}
};
public class ExecDemo01{
public static void main(String args[]){
SortArray arr = new SortArray(5) ; // 5
System.out.println(arr.add(11)) ;
System.out.println(arr.add(2)) ;
System.out.println(arr.add(33)) ;
System.out.println(arr.add(4)) ;
System.out.println(arr.add(0)) ;
System.out.println(arr.add(6)) ;
print(arr.getArray()) ;
}
public static void print(int temp[]){ //
for(int x:temp){
System.out.print(x + "、") ;
}
}
};
class ReverseArray extends Array{ //
public ReverseArray(int len){ //
super(len) ;
}
public int[] getArray(){
int x[] = new int[super.getArray().length] ; //
int count = x.length - 1 ;
for(int i=0;i
이 프로그램 에서 다음 과 같은 지식 을 융합 시 켰 다.
1、 계승의 기본 개념: 클래스 기능 확장
2、 방법의 복사 작용
3、 인용 전달
4、 배열 의 정렬, foreach 출력
일곱 final 키워드 (포인트)
final 키 워드 는 다음 과 같은 성명 을 할 수 있 습 니 다.
1) 성명 류: final 성명 류 에 하위 클래스 가 있 으 면 안 됩 니 다.
2) 성명 방법: final 성명 의 방법 으로 하위 클래스 에 덮어 쓸 수 없습니다.
3) 성명 변수: final 성명 의 변 수 는 상수 가 되 며 상수 의 내용 은 바 꿀 수 없습니다.
자바 에 서 는 final 성명 의 변 수 를 상수 로 합 니 다. 이 상수 의 표시 자 는 일반적으로 모두 대문자 로 표 시 됩 니 다.
자바 에 도 중요 한 개념 이 존재 합 니 다. 전역 변 수 는 Public static final 로 설명 합 니 다.
여덟, 추상 류 와 인터페이스의 기본 개념 과 응용
1. 추상 류: 추상 적 인 방법 을 포함 하 는 유형 은 추상 적 인 방법 이다. 추상 적 인 방법 은 성명 만 하고 실현 하지 못 하 는 방법 이다. 모든 추상 적 인 방법 은 반드시 abstract 키워드 로 성명 해 야 하고 모든 추상 류 도 abstract 키워드 로 성명 해 야 한다.
추상 류 에 있어 추상 류 는 직접적 으로 예화 할 수 없 지만 추상 류 를 사용 하려 면 반드시 그 하위 류 에 의존 해 야 한다. 추상 류 는 반드시 하위 류 에 의 해 계승 되 어야 하고 추상 류 를 계승 하 는 하위 류 는 추상 류 중의 모든 추상 적 인 방법 을 실현 해 야 한다.
추상 류 는 final 키워드 로 설명 할 수 없습니다. 추상 류 는 하위 클래스 에 의 해 계승 되 어야 하기 때문에 final 성명 류 는 하위 클래스 가 있어 서 는 안 됩 니 다.
추상 류 는 구조 방법 이 있 을 수 있 지만 이 구조 방법 은 직접 호출 할 수 없고 자 류 에 맡 겨 호출 하 는 것 이다. 실제 자 류 의 실례 화 과정 은 영원히 부 류 를 먼저 호출 하 는 구조 방법 이다.그리고 추상 류 의 속성 을 초기 화 하려 면 구조 방법 에 의존 해 야 한다.
2. 인터페이스: 인 터 페 이 스 는 특수 한 클래스 로 자바 에서 인 터 페 이 스 는 추상 적 인 방법 과 전역 변수 로 구성 되 어 있 으 며 인터페이스 로 인 터 페 이 스 를 정의 하고 하위 클래스 는 implements 를 통 해 인 터 페 이 스 를 실현 합 니 다.
한 종 류 는 한 부류 만 계승 할 수 있 지만 여러 개의 인 터 페 이 스 를 동시에 실현 할 수 있다.
3. 대상 다 형 성
다 태 성 은 전체 자바 에서 가장 중요 한 개념 으로 다 태 성 이 존재 하기 때문에 프로그램의 유연성 이 실 현 될 수 있다.다 태 성 은 대상 을 향 한 마지막 특징 이다.
1) 방법 과부하 와 방법 복 사 는 사실 다 형 적 인 표현 이다.
2) 진정한 다 태 성 은 대상 다 태 성 이라는 개념 을 포함한다.
| - 대상 의 다 태 성 은 주로 자 류 와 부 류 의 대상 간 의 상호 전환 을 가리킨다.
|-위로 전환: 부모 클래스 부모 클래스 대상 = 하위 클래스 인 스 턴 스 à 자동 완성
|-아래로 전환: 하위 클래스 대상 = (하위 클래스) 부모 클래스 대상 à 강제 완성
자바 는 인 스 턴 스 of 방법 을 제공 하여 대상 이 하나의 클래스 에 속 하 는 지 여 부 를 판단 합 니 다.
대상 instanceof 클래스 는 boolean 형식의 결과 값, true 또는 false 를 되 돌려 줍 니 다.
대상 의 아래로 전환 하 는 작업 이 성공 할 수 있 도록 전환 하기 전에 인 스 턴 스 of 를 사용 하여 이러한 유형 에 속 하 는 지 판단 하 는 것 이 좋 습 니 다.
계승 관계 에서 아버지 류 의 디자인 은 매우 중요 하 다. 만약 에 아버지 류 의 디자인 이 비교적 좋 으 면 코드 편집 이 편리 할 것 이다.
추상 류 의 가장 큰 용 도 는 바로 템 플 릿 디자인 이다.
아홉, 추상 류 와 인터페이스의 차이 (절대 중점)
10. object 류
。toString (): 대상 이 인쇄 될 때 호출 합 니 다.
。equals (): 대상 의 비교 작업 을 완성 합 니 다.
다음으로 전송:https://www.cnblogs.com/aikongmeng/archive/2013/05/29/3697434.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.