본문 바로가기

수업 복습하기/Java Quiz

Quiz 27 - 상속 + Method

728x90
728x90

= 상속 + Method

 

<문제> (난이도 ) (return이 붙고 안붙고가 아직 정확하게 성립되지 않았음!)

(in phone calss)

//DmbPhone은 Phone클래스를 상속 받습니다.
//channel 변수를 생성하고, color, model, channel을 초기화 하는 생성자를 작성하세요.
//메인메서드가 정상적으로 실행되도록 메서드를 추가하세요.
//(main class를 보고서 판단하면 된다) 폰같은 경우는 그냥 상속받는거니까 상속받는 걸로 끝.

 

(in mainclass)

//Dmb폰 객체 생성

//Phone클래스에서 상속받은 멤버 변수에 접근

//Phone에서 상속받은 메서드 호출

//DmbPhone에서 선언한 메서드 호출

 

<정답>

모델: 햅틱
색상: 메탈그레이
채널: 10
전원을 켭니다.
벨이 울립니다.
나: 여보세요??
상대방: 안녕하세요? XX보험입니다.
전화를 끊습니다.
TV를 켭니다
채널:7번
TV를 끕니다
전원을 끕니다.

 

<해설>

<phone class>

package quiz04;
public class Phone {
	
	String model;
	String color;
	
	void powerOn() {
		System.out.println("전원을 켭니다.");
	}
	
	void powerOff() {
		System.out.println("전원을 끕니다.");
	}
	
	void ring() {
		System.out.println("벨이 울립니다.");
	}
	
	void sendVoice(String message) {
		System.out.println("나: " + message);
	}
	
	void recieveVoice(String message) {
		System.out.println("상대방: " + message);
	}
	
	void hangUp() {
		System.out.println("전화를 끊습니다.");
	}
}
<DmbPhone Class>
package quiz04;

public class DmbPhone extends Phone{
	//DmbPhone은 Phone클래스를 상속 받습니다.
	//channel 변수를 생성하고, color, model, channel을 초기화 하는 생성자를 작성하세요.
	//메인메서드가 정상적으로 실행되도록 메서드를 추가하세요.
	//(main class를 보고서 판단하면 된다) 폰같은 경우는 그냥 상속받는거니까 상속받는 걸로 끝.
	//생성자는 상속이 되지 않는다.
    
	int channel;
	
	DmbPhone(String pname,String pcolor,int pch){
		model=pname;
		color=pcolor;
		channel=pch;
	}
	void turnOnDmb() {
		System.out.println("TV를 켭니다");
	}

	void changeChannel(int aa) {
		channel=aa;
		System.out.println("채널:"+aa+"번");
		//다른방식
//		System.out.println("변경된 채널:"+channel);
//		return channel;	
		}
        
	void turnOffDmb() {
		System.out.println("TV를 끕니다");
		}
	}
<MainClass>
package quiz04;
public class MainClass {

	public static void main(String[] args) {
		
		//Dmb폰 객체 생성
		DmbPhone dp = new DmbPhone("햅틱", "메탈그레이", 10);

		//Phone클래스에서 상속받은 멤버 변수에 접근
		System.out.println("모델: " + dp.model);
		System.out.println("색상: " + dp.color);
		//DmbPhone에서 선언한 멤버 변수에 접근
		System.out.println("채널: " + dp.channel);

		//Phone에서 상속받은 메서드 호출
		dp.powerOn();
		dp.ring();
		dp.sendVoice("여보세요??");
		dp.recieveVoice("안녕하세요? XX보험입니다.");
		dp.hangUp();

		//DmbPhone에서 선언한 메서드 호출
		dp.turnOnDmb(); //기능: TV를 켭니다 출력
		dp.changeChannel(7); //기능: channel변수를 전달받은 변수로 변경후 출력
		dp.turnOffDmb(); //기능: TV를 끕니다 출력
		dp.powerOff();
	}
}

728x90

'수업 복습하기 > Java Quiz' 카테고리의 다른 글

Quiz 29 - 오버로딩 + 배열  (0) 2021.08.30
Quiz 28 - Overriding + Overload  (0) 2021.08.30
Quiz 26 - 생성자 + Method (2)  (0) 2021.08.29
Quiz 25 - 생성자 + Method  (0) 2021.08.29
Quiz 24 - Method 연습  (0) 2021.08.29