자바 추상클래스 + 추상메소드 (abstract)
2015. 8. 22. 18:14ㆍWEB/JSP(JAVA)
반응형
자바 추상클래스 + 추상메소드 (abstract)
추상클래스는 인스턴스화가 안됨
객체를 생성할 수 없다는것 인터페이스와의 차이점은 클래스라 상속을 받아서 사용 extends 추상메소드가 꼭 있어야 합니다.
여려 명이 개발을 할 때 하나의 클래스에서 정의를 하고 그 클래스를 직접 사용은 못하게 하면서 정의한 클래스를 오버라이딩 해서 쓰는 경우입니다. 아래 예제를 보면 이해가 빠릅니다~
package ggariAbstract;
//tip 클래스를 가지고 객체를 만드는거 인스턴스화 라고 함 ( 설명? ) 인스턴스화를 막기위해 abstract 사용 하면되긴하는데...
//abstract 키워드를 붙인 클래스를 추상 클래스 추상클래스는 객체로 만들수 없다.
abstract class ContentSender {
String title;
String nm;
// 생성자
public ContentSender(String title, String nm) {
this.title = title;
this.nm = nm;
}
// 본체가없는 메소드
abstract void sendMsg(String content);
}
class letterSender extends ContentSender {
String content;
// 생성자
public letterSender(String title, String nm, String content) {
super(title, nm);
this.content = content;
}
// The type letterSender must implement the inherited abstract method
// ContentSender.sendMsg(String)
// sendMsg 받아 오버라이딩한다.
@Override
void sendMsg(String recipient) {
System.out.println("제목 =" + title);
System.out.println("이름 =" + nm);
System.out.println("내용 =" + content);
System.out.println("받는사람 =" + recipient);
}
}
class kakaoSender extends ContentSender {
String content;
public kakaoSender(String title, String nm, String content) {
// 슈퍼생성자를 물어보시는분은 자바책을꺼내서 다시 공부를..
// 부모에 생성자가 이미 정의가 되어있음
// 만약 super 를 안쓰기위해서 non-arg constructor 호출을 해주면된다 한개더 정의를 하면되겟조?
// ex) public ContentSender() {}
super(title, nm);
this.content = content;
}
@Override
void sendMsg(String recipient) {
System.out.println("제목 =" + title);
System.out.println("이름 =" + nm);
System.out.println("내용 =" + content);
System.out.println("받는사람 =" + recipient);
}
}
class ggariTest {
public static void main(String[] args) {
letterSender ls = new letterSender("안녕하세요?문자", "김영준문자", "방가워 문자야");
kakaoSender ks = new kakaoSender("안녕하세요?카카오", "김영준카카오", "방가워 카카오야");
// 추상메소드 구현 오버라이딩해서 쓴다
ls.sendMsg("그녀1");
ks.sendMsg("그녀2");
}
}
이상~
끝~
반응형
'WEB > JSP(JAVA)' 카테고리의 다른 글
| [자바 문자열 비교]Java String euqals과 == 의 차이점 (0) | 2016.07.06 |
|---|---|
| 자바 JAVA ArrayList Sorting (3) | 2014.08.01 |
| 자바 오버라이딩 + 오버로딩 차이점 (6) | 2014.01.16 |
| [자바]JAVA null 체크 + java.lang.NullPointerException (17) | 2014.01.13 |
| 이클립스 svn Compare with Each Other (0) | 2014.01.06 |