728x90
반응형
안녕하세요. 스마트 팩토리입니다.
자바 중급 024. 상속(inheritance) -부모클래스 , 자식클래스 관계(2)에 대해 알아보겠습니다.
1. 상속(inheritance)
가. 상속 예시 (1)
<<ClassA. java 부모 클래스>>
ClassA부모 클래스를 작성하였습니다.
package ex01_02inheritance;
public class ClassA {
int a;
int b;
ClassA(){ ---> 생성자
a=1;
b=5;
}
}
<<ClassB.java 자식 클래스 >>
public class ClassB extends ClassA
를 통해서 ClassB가 자식 클래스 ClassA가 부모클래스가 된 것을 알 수 있습니다.
package ex01_02inheritance;
public class ClassB extends ClassA {
void sum() {
System.out.println(" 두 수 의 합 : "+ (this.a+this.b));
}
}
<<ClassC.java 메인 클래스 작성>>
num1의 값은 num1.a 는 부모클래스 값을 받아서 1이 되고 num1.b 값은 객체 생성후 20으로 변경됩니다.
자식 클래스에서 num1.sum() 메소드에 의해서 두수를 더한 값은 21이 됩니다.
num2 객체 생성시 부모클래스 값에 의해서
num2.a=1, num2.b=5가됩니다.
자식 클래스 classb 에서 num2.sum()에 의해서
두수의 합 6이 됩니다.
package ex01_02inheritance;
public class ClassC {
public static void main(String[] args) {
ClassB num1=new ClassB();
num1.b=20;
num1.sum();
ClassB num2=new ClassB();
num2.sum();
}
나. 상속 예시 (2)
<<classtest.java 클래스 작성>>
ClassA, ClassB, 메인 클래스를 하나의 파일로 작성하였습니다.
ClassB에서 자식클래스에서 클래스 멤버 b를 선언했습니다. 자동 초기화에 의해서 num2.a=1, num2.b=5이 됩니다. 부모클래스와 자식 클래스가 동일한 변수가 있는 경우는 자식 클래스 가 우선하기 때문에 num2.b=5에서 0으로 변경됩니다.
num2.sum() 메소드에 의해서 두수의 합은 1이 출력됩니다.
package tclass;
class ClassA {
int a;
int b;
ClassA(){
a=1;
b=5;
}
}
class ClassB extends ClassA {
int b;
void sum() {
System.out.println(" 두 수 의 합 : "+ (this.a+this.b));
}
}
public class classtest {
public static void main(String[] args) {
ClassB num1=new ClassB();
num1.b=20;
num1.sum();
ClassB num2=new ClassB();
num2.sum();
}
}
728x90
반응형
'Java' 카테고리의 다른 글
자바 중급 026. 상속, 오브젝트 클래스 (object 클래스)- 모든 클래스의 조상 클래스 (0) | 2021.09.12 |
---|---|
자바 중급 025. final 필드 (0) | 2021.09.11 |
자바 중급 023. 상속(inheritance) -부모클래스 , 자식클래스 관계(1) (0) | 2021.09.10 |
자바 중급 022. 인스턴스 초기화 블럭, 정적 초기화 블럭,초기화 순서(2) (0) | 2021.09.09 |
자바 중급 021. 인스턴스 초기화 블럭, 정적 초기화 블럭,초기화 순서(1) (0) | 2021.09.08 |
댓글