




부모 클래스로 부터 상속받은 메서드를 다시 재정의 하는 것을 오버라이딩이라고 한다.
오버라이딩의 조건
선언부가 부모 클래스의 메서드와 일치해야 한다.
접근 제어자를 부모 클래스의 메서드 보다 좁은 범위로 변경을 할 수 없습니다.
예외는 부모 클래스의 메서드 보다 많이 선언할 수 없다.
IF 다른 패키지에 각자 다른 클래스가 있다고 정의하자 pulic은 서로 다른 패키지에 있어도 접근이 가능하다.


-----------------------------------------------------------------------------------------------------------------------------------------------------------------
super 키워드
부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는데 사용하는 참조 변수입니다.
class Parent{int a =10; }
class Child extends Parent{
void show(){
System.out.println(a);
System.out.println(this.a);
System.out.println(super.a);;
}
}
public class Main{
public static void main(String[] args){
Child ch = new Child();
ch.show();// 10 10 10 출력
}
}
class Parent{
int a =10;
}
class Child extends Parent{
int a =20;
void show(){
System.out.println(a);
System.out.println(this.a);
System.our.println(super.a);
}
}
public class Main{
public static void main(String[] args){
Child ch = new Child();
ch.show();// 20 20 10
}
}
다형성이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미
class Parent { ... }
class Child extends Parent { ... }
...
Parent pa = new Parent(); // 허용
Child ch = new Child(); // 허용
Parent pc = new Child(); // 허용
Child cp = new Parent(); // 오류 발생.




부모 클래스는 자식 클래스의 함수 접근이 불가 하다. mammal을 다시 자식 객체로 강제로 형변환을 하면 swimming 함수에 접근이 가능해서 호출이 가능해짐