1.
public class ParentClass {
public void pMethod() {
System.out.println("ParentClass()"); //내용 고쳐쓰기
}
}
public class ChildClass extends ParentClass{
@Override
public void pMethod() {
super.pMethod(); //가장 첫번째 줄에 쓸 것
System.out.println("ChildClass pMethod");
}
public void func() { //자식클래스에만 있는 메소드
pMethod(); //Child Class에 있는 메소드를 호출
super.pMethod(); //ParentClass 메소드 호출
}
}
import cls.ChildClass;
public class MainClass {
public static void main(String[] args) {
ChildClass cc = new ChildClass(); //ChildClass 객체 생성
cc.pMethod(); //ParentClass에서 물려받은 메소드를 ChildClass에서 호출
}
}
2.
public class ParentClass {
public void Method() {
System.out.println("ParentClass Method()");
}
public void func() {
System.out.println("ParentClass func()");
}
}
public class ChildClass extends ParentClass{
public void Method() { //override
System.out.println("ChildClass Method()"); //프린트내용 변경
}
public void function() { //ChildClass 메소드 생성
System.out.println("ChildClass function()");
}
}
import cls.ChildClass;
import cls.ParentClass;
public class MainClass {
public static void main(String[] args) {
// ChildClass cc = new ChildClass();
// cc.Method();
ParentClass pc = new ChildClass();
//자식객체 생성 인스턴트는 parent
//부모에게 오버라이딩 된 것만 가능
pc.Method(); //child에 오버라이드 된 메소드를 가져옴
pc.func(); //Parent에 있는 메소드 == Child에 오버라이딩 된 메소드
// pc.function(); //자식에 새로 만든건 불가능
ChildClass cc = (ChildClass)pc; //강제변환 (Parent->Child)
cc.function(); //가능
}
}
Override 오버라이드 | Overroad 오버로드 |
기존 Class와 매개변수의 타입, 개수, 순서를 다르게한다. | 기존 Class내에 있는 메소드를 다르게(재정의)한다. |
Super() | Super. |
부모클래스에 있는 생성자를 가리킨다. | 부모클래스의 주소를 가리킨다. 부모 객체 참조, 부모 메소드 직접 접근 가능 |
자식클래스에서 오버라이딩 시 -> 부모클래스의 메소드는 숨겨지고 오버라이딩 된 자식메소드를 사용한다.
하지만 부모클래스의 메소드를 호출할 시 super.method(); 처럼 super키워드를 붙여서 부모 메소드를 호출한다.
'BackEnd > Java' 카테고리의 다른 글
[Java] 서로다른 클래스의 객체생성과 메소드 호출 (0) | 2022.01.08 |
---|---|
[Java] 상속 자동 타입 변환&강제 타입 변환 / 업캐스팅&다운캐스팅 + instanceof (0) | 2021.12.16 |
[Java] Overloading (생성자, 메소드 오버로딩) (0) | 2021.12.15 |
[Java] Escape Sequences 사용하기 (0) | 2021.12.06 |
[Java] Class Scanner 사용해서 입력받기 (0) | 2021.12.06 |