해결된 질문
작성
·
102
·
수정됨
답변 1
0
네 맞습니다.
class Parent {
void parentMethod() {
System.out.println("Parent method");
}
}
class Child extends Parent {
void childMethod() {
System.out.println("Child method");
}
}
public class Main {
public static void main(String[] args) {
Parent p = new Child(); // 업캐스팅
p.parentMethod(); // 가능
p.childMethod(); // 컴파일 에러
}
}
부모가 추상클래스 일 때도 마찬가지입니다.
abstract class Parent {
abstract void abstractMethod();
void parentMethod() {
System.out.println("Parent method");
}
}
class Child extends Parent {
void abstractMethod() {
System.out.println("Abstract method implementation");
}
void childMethod() {
System.out.println("Child method");
}
}
public class Main {
public static void main(String[] args) {
Parent p = new Child(); // 업캐스팅
p.abstractMethod(); // 가능
p.parentMethod(); // 가능
p.childMethod(); // 컴파일 에러
}
}
인터페이스일 때도 그렇습니다.
interface ParentInterface {
void interfaceMethod();
}
class Child implements ParentInterface {
public void interfaceMethod() {
System.out.println("Interface method implementation");
}
void childMethod() {
System.out.println("Child method");
}
}
public class Main {
public static void main(String[] args) {
ParentInterface p = new Child(); // 업캐스팅
p.interfaceMethod(); // 가능
p.childMethod(); // 컴파일 에러
}
}