인터페이스란 추상메소드와 상수인변술로만 이루어진 추상 자료형이다
예를 들어 스타크래프트유닛이 전부 공격과 스탑이라는 공통된 명령이있다면
이 모든걸 인터페이스에 담아서 모두 공통적으로 쓸수있게된다
이해할수있게 코드를 작성해보자
이번에도 Animal이라는 인터페이스와 상속하게될 Dog와 Bird라는 클래스를 만들어보자
먼저 인터페이스 자료형인 Animal을 만들었다
인터페이스는 추상메소드만이 들어가야하기때문에
먹다 와 움직이다 의 메소드만 선언해보자
Dog에 Animal 인터페이스를 상속시켜보았다
eat과 move 메소드는 상속되었지만
안에 내용이 없기때문에 오버라이드로 Dog만의 내용을 만들어준다
Bird도 마찬가지로 Bird만의 메소드로 재정의 해준다
결과를 출력해보자
지난번에 다형성에서 배운 업캐스팅과 다운캐스팅을 활용해 출력해보자
Animal자료형의 dog라는 변수를 Dog클래스의 객체로 생성하면 어떻게 출력이 될까?
Dog의 메소드를 그대로 출력한다 Bird도 메소드그대로 출력이 되는것을 확인할수있다.
연습문제를 풀어서 더욱 이해해보자
Calc
더보기
package basic.ch22;
public interface Calc {
public abstract int add(int n1, int n2);
public abstract int substract(int n1, int n2);
public abstract int times(int n1, int n2);
public abstract double divide(double n1, double n2);
}
Calculator
더보기
package basic.ch22;
public abstract class Calculator implements Calc{
public double divide(double n1, double n2) {
if(n1 == 0 || n2 == 0) {
System.out.println("0으로 나눌수 없습니다");
return 0.0;
}
return n1 / n2;
}
}
CompleteCalc
더보기
package basic.ch22;
public abstract class Calculator implements Calc{
public double divide(double n1, double n2) {
if(n1 == 0 || n2 == 0) {
System.out.println("0으로 나눌수 없습니다");
return 0.0;
}
return n1 / n2;
}
}
'Java' 카테고리의 다른 글
Object 클래스 (1) | 2024.04.29 |
---|---|
String,String Buffer (0) | 2024.04.29 |
추상클래스 (1) | 2024.04.26 |
다형성의 활용(연습문제) (0) | 2024.04.24 |
다형성 (0) | 2024.04.24 |