인터페이스의 다형성
2022. 4. 19. 20:27ㆍjava/java
*다형성
1)하나의 타입에 여러가지 객체를 대입해서 다양한 실행 결과를 얻는 것을 말한다.
2)다형성을 구현하는 기술
-상속 또는 인터페이스의 자동 타입 변환
-오버라이딩
3)다형성의 효과
-다양한 실행 결과를 얻을 수 있다.
-객체를 부품화시킬 수 있어 유지보수가 용이하다.
*인터페이스를 이용한 다형성 개념
1)인터페이스는 매개변수 타입으로 자주 등장한다.
-메소드 호출시 매개값으로 여러가지 종류의 구현 객체를 대입할 수 있어 메소드 실행 결과가 다양하게 나온다.
예)
useRemoteControl(new Television);
useRemoteControl(new Audio);
*필드의 다형성
public class car {
Tire frontLeftTire = new HankookTire();
Tire frontRighttTire = new HankookTire();
Tire backLeftTire = new HankookTire();
Tire backRigthtTire = new HankookTire();
void run() {
frontLeftTire.roll();
frontRighttTire.roll();
backLeftTire.roll();
backRigthtTire.roll();
}
}
Car myCar = new Car();
myCar.frontLeftTire = new KumhoTire(); //타이어 인터페이스 클래스로부터 구현을 명령받은 금호타이어 객체
myCar.frontRighttTire = new KumhoTire();
myCar.run();
*매개변수의 다형성
public interface Vehicle { //인터페이스 클래스
public void run();
}
public class Taxi implements Vehicle{ //인터페이스 run 메서드를 구현한 Taxi 클래스
@Override
public void run() {
System.out.println("택시가 달립니다.");
}
}
public class Bus implements Vehicle{ //인터페이스 run 메서드를 구현한 Bus 클래스
@Override
public void run() {
System.out.println("버스가 달립니다.");
}
}
public class Driver {
public void drive(Vehicle vehicle) { //인터페이스 클래스 Vehicle을
vehicle.run(); //매개변수로 받는 Driver 클래스
}
}
public class DriverExample { //메인 클래스
public static void main(String[] args) {
Driver driver = new Driver();
Bus bus = new Bus();
Taxi taxi = new Taxi();
driver.drive(bus);
driver.drive(taxi);
}
}
'java > java' 카테고리의 다른 글
디폴트 메소드와 인터페이스 확장 (0) | 2022.04.19 |
---|---|
인터페이스 상속 (0) | 2022.04.19 |
인터페이스 구현(2) (0) | 2022.04.15 |
인터페이스 구현(1) (0) | 2022.04.15 |
인터페이스 선언 (0) | 2022.04.14 |