1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | package com.test; public class abstract { public static void main(String[] args) { //추상 클래스, Abstract Class // - 상속받는 클래스(객체)의 사용법을 표준화 (사용자경험중시) // - 멤버 중 메소드에 대한 제약 사항 // - 행동에 대한 강제성 부여 // - 부분 구현이 가능 // - 추상 메소드를 가림 // - 객체 상성 불가능 // - 사용 용도 : 일반 클래스의 부모 역할, 참조 변수 // - 추상 클래스 = 일반 클래스 + 추상 메소드 //추상 메소드, Abstract Method // - 상속받는 클래스(객체)의 사용법을 표준화 // - 구현부가 없는 메소드 //주의! 추상클래스는 객체를 생성할 수 없다.(실체화될수x) //일반클래스의 부모역할만 한다., 변수는 만들 수 있다. //그러면?.. 자식으로 객체를 만든다. //Monitor m1 = new Monitor(); //m1.on(); LG550 lg = new LG550(); lg.on(); lg.off(); HP660 hp = new HP660(); hp.on(); hp.off(); } } //ex) 추상클래스 abstract class Monitor { //뭘 적느냐? //일반 클래스 멤버 구현(변수, 메소드)와 //추상 메소드 public String model; //모델명 public int width; //해상도 public int hejght; public void checkModel() { System.out.printf("모델명 : %s\n", this.model); } //추상 메소드 선언 - 구현부가 없음(구현이 안된 메소드) {}가 없음 public abstract void on(); public abstract void off(); } //추상 클래스를 부모로 상속 // -> 반드시(***) 추상 클래스의 추상 메소드와 동일한 메소드를 구현 class LG550 extends Monitor { //LG550만의 멈버 추가 public void on() { //on()-> ㅗ모니터는 on(0 사용법을 가지고 전원 켜주세요., System.out.println("lG 모니터 켜기"); } public void off() { System.out.println("LG 모니터 끄기"); } } //extends Monitor : LG550과 동일하게 규격을 지키겠습니다. class HP660 extends Monitor { //HP660만의 일반 멤버 구현., @Override public void on() { System.out.println("HP660 전원 켜기"); } @Override public void off() { System.out.println("HP660 전원 끄기"); } } | cs |
'WEB > JAVA' 카테고리의 다른 글
OVERRIDE(오버로딩) (0) | 2015.05.22 |
---|---|
ABSTRACT CLASS(추상클래스)2 (0) | 2015.05.22 |
OBJECT CLASS (0) | 2015.05.22 |
INHERITANCE(상속) (0) | 2015.05.22 |
CONSTRUCTOR(생성자)3 (0) | 2015.05.22 |