본문 바로가기
2022-2/자바

추상화 클래스, 추상화 메소드, 다형성

by 철없는민물장어 2022. 11. 3.
728x90
반응형

추상화 클래스 MsgSender


abstract public class MsgSender {
	String title;
	String senderName;
	
	public MsgSender(String title,String senderName) {
		this.title=title;
		this.senderName=senderName;
	}
	abstract void sendMsg(String recipnt);
}

추상화클래스 MsgSender을 상속받는 이메일 클래스

public class EmailSend extends MsgSender {
	
	String sendAddr;
	String emailBody;
	
	public EmailSend(String title, String senderName,String sendAddr,String emailBody) {
		super(title, senderName);
		this.sendAddr=sendAddr;
		this.emailBody=emailBody;
	}

	void sendMsg(String recipnt) {
		System.out.println("**************************");
		System.out.println("이메일 제목:"+title);
		System.out.println("보내는사람: "+senderName);
		System.out.println("보내는사람 주소:"+sendAddr);
		System.out.println("받는사람: "+recipnt);
		System.out.println("내용: "+emailBody);
	}
}

sendMsg를 구체화함

 

MsgSender을 상속받는 SMSSender

public class SMSSender extends MsgSender{
	String retPhNo;
	String msg;
	
	public SMSSender(String title, String senderName,String retPhNo,String msg) {
		super(title,senderName);
		this.retPhNo=retPhNo;
		this.msg=msg;
	}
	
	void sendMsg(String recipnt) {
		System.out.println("+++++++++++++++++++++++++");
		System.out.println("제목: "+title);
		System.out.println("전화번호:"+retPhNo);
		System.out.println("이름:"+senderName);
		System.out.println("받는사람: "+recipnt);
		System.out.println("내용:"+msg);
	}
}

sendMsg 추상화 메소드 구체화함

 


public class Main1103 {

	public static void main(String[] args) {
		MsgSender obj = new EmailSend("생축","철수","kcs@haha.com","왜태어났니");
		obj = new SMSSender("SKT멤버쉽 할인 안내","T멤버십","1688-1799","비싼 요금제 선택하고 할인권 받자~");
		//obj.sendMsg("고니");
		send(obj,"고니");
	}

	static void send(MsgSender obj, String recipnt) {
		obj.sendMsg(recipnt);
	}
}

다형성을 이용하는 메인함수

 

 

업캐스팅

728x90
반응형

'2022-2 > 자바' 카테고리의 다른 글

package  (0) 2022.11.15
interface/Object class/Wrapper class/System class  (0) 2022.11.08
입출력,버퍼,파일입출력  (1) 2022.11.01
상속,오버라이딩,super(),final,abstract  (0) 2022.11.01
자바 중간고사  (0) 2022.10.26

댓글