package ch02;
public abstract class HomeAppliances {
int width;
int height;
String color;
}
package ch02;
public interface RemoteControler {
//구현된 것이 아무것도 없는 밑그림만 있는 기본 설계도
//멤버 변수 , 일반 메서드를 가질 수 없고 오직 추상메서드와 상수만을 멤버로 가질 수 있다.
//추상 클래스보다 추상화가 더 높다.
//인터페이스는 (표준), (약속), (규칙)이다.
//인터페이스를 왜 쓰는가?
//인터페이스가 하는 일
//클래스나 프로그램이 제공하는 기능을 명시적으로 선언
//일종의 클라이언트와 코드와의 약속이며 클래스나 프로그램이 제공하는 명세
//클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현할 수 있다.
//어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미입니다.
//다형성이 성립된다.
//제약사항
//모든 멤버 변수는 상수이어야 한다.
//모든 메서드는 추상메서드 이어야하고 단, public abstract 키워드는 생략이 가능하다.
public static final int SERIAL_NUMBER = 100;
public abstract void turnOn(); //전부 작성한방법 - 추상메서드
void turnOff();// public abstract 생략한 방법(컴파일이 자동으로 진행)
}
package ch02;
public class Refrigerator extends HomeAppliances implements RemoteControler,SoundEffect {
@Override
public void turnOn() {
System.out.println("냉장고를 켭니다");
}
@Override
public void turnOff() {
System.out.println("냉장고를 끕니다.");
}
@Override
public void notification() {
System.err.println("띄리링~");
}
}
package ch02;
public class Television extends HomeAppliances implements RemoteControler {
//implements 구현한다 interface를 쓸시에 사용
@Override
public void turnOn() {
System.out.println("TV를 켭니다");
}
@Override
public void turnOff() {
System.out.println("TV를 끕니다.");
}
}
package ch02;
public class ToyRobot implements RemoteControler,SoundEffect {
String name; //초기값 -> null
//int -> 0
//double - >0.0
//지역변수 :메모리의 변수를 호출할떄 쓰는것
//메모리 구조에따라 위치하는 곳이 다르고
//스태틱 멤버변수 등으로 나뉜다.
@Override
public void turnOn() {
System.out.println("장난감 로봇을 킵니다");
}
@Override
public void turnOff() {
System.out.println("장난감 로봇을 끕니다");
}
@Override
public void notification() {
System.out.println("두루루쾅");
}
}
package ch02;
public interface SoundEffect {
// public abstract void notification();
void notification();
}
'Java > Excercise' 카테고리의 다른 글
interface ch04 UserInfo (0) | 2021.08.31 |
---|---|
interface ch02 HomeMainTest (0) | 2021.08.31 |
interface ch01 HomeAppliances (0) | 2021.08.31 |
inheritance ch02 상속이 되지않는 Car (0) | 2021.08.30 |
abstract ch03 Car (0) | 2021.08.30 |