인터페이스
구현해야함. 작업명세서임. 구체적이 내용없음 (추상메서드) @Override
인스턴스를 만들 수 없음
여러개를 임플할 수 있음
구현한 클래스로 객체를 생성하면 구현 강제한 해당 인터페이스 타입 내의 멤버에만 접근할 수 있음
타입은 해당 구현클래스, 임플한 인터페이스로도 지정 가능(데이터타입의 확장)
장난감인터페이스 <--- 로봇, 비행기가 구현 클래스
장난감 타입의 배열 = {로봇타입, 비행기타입};
배열 돌면서
장난감[i].walk();
장난감[i].run();
장난감[i].alarm();
장난감[i].light();
각자 구현한 로직으로 처리가 됨
추상클래스
클래스 + 인터페이스의 추상메서드 포함
클래스처럼 멤버변수 있고, 일반메서드도 가지고, 생성자도 있음, 추상클래스는 extends로 상속
추상메서드가 상속클래스가 구현해야함 @Override
구현 클래스가 생성자 호출 하면서 구현 클래스는 super로 추상클래스의 생성자를 호출할 수 있고 상위 추상클래스의 멤버변수값도 초기화해서
상위 클래스 (추상클래스) 타입으로 지정하면 추상클래스의 멤버메서드도 사용할 수 있고, 상속 받아 구현한 내부 메서드도 사용할 수 잇음
공통부분을 추상클래스로 구현하고 상세 부분 개별적으로 구현해서 다양한 데이터타입 가지도록 다형성 실현
댓글