자바 추상클래스 + 추상메소드 (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 |