부모클래스 (상속을 위함)
package parent;
public class ParentClass {
public void ParentMethod() { // Over Ride Method
System.out.println("ParentClass ParentMethod()");
}
}
자식 클래스1
package child;
import parent.ParentClass;
public class JaneClass extends ParentClass {
@Override
public void ParentMethod() {
System.out.println("JaneClass Parent");
}
public void sayHello() {
System.out.println("안녕!!");
}
}
자식클래스2
package child;
import parent.ParentClass;
public class TomClass extends ParentClass{
@Override
public void ParentMethod() {
System.out.println("TomClass Parent");
}
public void func() {
System.out.println("TomClass func()");
}
}
메인 클래스
package oop05;
import child.JaneClass;
import child.TomClass;
import parent.ParentClass;
public class mainClass {
public static void main(String[] args) {
// Over Ride 목적 : 하나의 instance 형으로 관리가 용이하게
TomClass tc = new TomClass();
JaneClass jc = new JaneClass();
tc.ParentMethod();
jc.ParentMethod();
ParentClass p1 = new TomClass();
p1.ParentMethod(); //오버라이딩 된 메소드
//오버라이딩 된 메소드외의 것을 사용하기위해서 형변환을 해야한다.
TomClass t = (TomClass)p1; //강제 형변환
t.func();
//위와 같다.
((TomClass)p1).func();
ParentClass p2 = new JaneClass();
p2.ParentMethod();
JaneClass j = (JaneClass)p2;
j.sayHello();
}
}
부모 클래스 하나만을 사용해서 상속된 자식들을 한번에 관리할 수 있다(오버라이딩 된 메소드에 한해서만 가능하다)
오버라이딩 된 메소드가 아닌 각각의 자식에 따로 선언된 func, sayHello 등의 메소드는
형변환 ((TomClass)p1).func() 혹은
JaneClass j = (JanClass)p2;
j.sayHello() 등을 사용해서 형변환을 사용 후 호출 해줘야 한다.
'Java > java 기초' 카테고리의 다른 글
학생관리 프로그램 MVC 패턴으로 나누기 (0) | 2019.11.28 |
---|---|
final (0) | 2019.11.28 |
객체지향 프로그래밍 기본 개념 (0) | 2019.11.27 |
파일 쓰기 (0) | 2019.11.26 |
파일 읽기 (0) | 2019.11.26 |