일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- AP Computer Science A
- 생물정보학
- COVID
- 자바
- SVM
- AP
- 캐글
- 생명정보학
- MERS
- 오류역전파
- CNN
- BLaST
- 인공지능 수학
- bioinformatics
- Kaggle
- Java
- 알파폴드
- 블록체인
- 인공지능
- 파이썬
- 서열정렬
- 딥러닝
- 이항분포
- 시그모이드
- 결정트리
- 바이오파이썬
- ncbi
- 바이오인포매틱스
- 행렬
- 인공신경망
- Today
- Total
데이터 과학
상속(Inheritance) 본문
자바언어의 상속(Inheritance) 개념에 대해 설명해 보겠습니다.
부모(parent) 클래스의 기능을 자식(child) 클래스가 사용할 수 있게 만든 기능입니다.
부모 클래스가 가지고 있는 멤버 변수와 멤버메소드를 자식 클래스로 사용할 수 있습니다.
자식 클래스를 여러 개 만들 수 있습니다.
상속을 하는 이유는 공통적 사용하는 멤버변수와 멤버메소드를 하나의 클래스로 선언하여 부모 클래스로 만들어서 공유하고 자식 클래스가 그것을 확장(extends)하여 기능을 확산하는 데 있습니다.
하지만, 다음의 경우는 상속 할 수 없습니다.
1. private 선언된 변수나 메소드 (지역변수)
2. 생성자
3. 패키지가 다른 경우
상속하는 방법은 다음과 같습니다.
public class parent{ .... } // 부모 클래스
public class child extends parent { .... } // 자식 클래스
간단한 예제를 하나 봅시다.
class parent {
String name;
int number;
public void Department(){
System.out.println("국제인문자연 " + name+" "+number);
}
}
public class Child extends parent {
Child (String name, int number){
this.name=name; // this 문법입니다. this.name은 먼저 선언된 변수입니다.
this.number=number;
}
public static void main(String args[]) {
Child c=new Child("김아무개", 10155 );
c.Department();
}
}
결과:
국제인문자연 김아무개 10155
생성자는 상속이 안되는 성질이 있습니다.
하지만 자식클래스에서 super()라는 함수를 사용하면 생성자의 내용을 가져올 수 있습니다.
class parent {
String name;
int number;
parent (String name, int number){
this.name=name;
this.number=number;
}
public void Department(){
System.out.println("국제인문자연 " + name+" "+number);
}
}
public class Child extends parent {
Child (){
super("김아무개", 10155 ); // super는 내부에서 다른 줄 보다 먼저 사용해야 합니다.
}
public static void main(String args[]) {
Child c=new Child();
c.Department();
}
}
결과:
국제인문자연 김아무개 10155
상속은 부모클래스에서 자식클래스로 확장하는 개념입니다.
상속에서 하나의 부모 클래스는 여러 개의 자식 클래스는 가질 수 있습니다.
상속은 여러개의 부모 클래스가 하나의 자식 클래스를 상속할 수 없습니다.
상속은 단일 상속만 가능합니다.
다중 상속이 가능한 개념으로는 인터페이스(interface)가 있습니다.
상속에 대한 예제를 좀 더 학습하려면 아래 링크에 있는 예제를 한번 읽어 보는 것이 좋습니다.
https://tsyoon.tistory.com/197
상속 예제
extends 확장 명령어를 사용하는 자바에서의 상속은 공통적인 내용을 기준으로 하위 클래스에서 확장의 개념으로 내용을 추가하는 개념으로 사용합니다. 아래 내용은 Student에서 GradeStudent와 Unde
tsyoon.tistory.com
프로그램 설계방법 이론 중 UML에서 class diagram에 대한 내용입니다.
'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글
인터페이스 (interface) (0) | 2022.11.13 |
---|---|
추상 클래스와 오버라이딩 (4) | 2022.11.13 |
메소드 오버로딩 (7) | 2022.11.05 |
생성자 (constructor) (8) | 2022.10.30 |
배열 (array) (1) | 2022.10.23 |