JX405기_비트/Java
Day05-2 인터페이스 상속
_하루살이_
2023. 1. 16. 16:23
IAnimal 인터페이스 생성
package day0113;
public interface IAnimal {
// 필드, 생성자 선언 불가능 : 실제로 생성이 될 수 있는 것은 만들지 못함
public void makeSound();
// 메소드는 생성 가능 : 메소드를 정의하는 공간을 만들면 에러
public void move();
public void eat();
// 부모클래스에서 메소드를 정의하는 것이 아니라 자식 클래스에서 메소드를 Override 해야함
}
Rabbit 자식 클래스 생성
package day0113;
public class Rabbit implements IAnimal {
// 인터페이스에서는 반드시 상속받는 인터페이스에 있는 메소드를 자식클래스에서 정의해주어야함
@Override
public void makeSound() {
System.out.println("토끼 토끼");
}
@Override
public void move() {
System.out.println("깡총 깡총");
}
@Override
public void eat() {
System.out.println("풀을 뜯어먹습니다.");
}
// 상속 받는 클래스가 고유 메소드를 갖는 것을 선호하진 않음
public void swim(){
System.out.println("용궁에 갑니다.");
}
}
Cat 자식 클래스 생성
package day0113;
public class Cat implements IAnimal{
@Override
public void makeSound() {
System.out.println("냐옹");
}
@Override
public void move() {
System.out.println("슬금슬금");
}
@Override
public void eat() {
System.out.println("생선을 먹습니다.");
}
}
실행
package day0113;
public class Ex01Inheritance {
public static void main(String[] args) {
// IAnimal iAnimal = new IAnimal(); 에러 : 인터페이스는 객체를 실체화 할 수 없음 => 자식클래스로 상속받아 사용
IAnimal iAnimal = new Rabbit();
showSample(iAnimal);
IAnimal cat = new Cat();
showSample(cat);
}
// 인터페이스에서 다형성 사용
public static void showSample(IAnimal iAnimal){
iAnimal.makeSound();
iAnimal.move();
iAnimal.eat();
}
}