Java/Excercise

interface ch02 HomeAppliances

낭구리 2021. 8. 31. 17:40
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