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 |
댓글