[Java] 추상 클래스

C____JIN·2022년 8월 1일
0

Java

목록 보기
6/9
post-thumbnail

추상 클래스

추상 클래스란?

  • abstact class : 추상 클래스
  • concrete class : 추상 클래스가 아닌 클래스

추상 클래스 구현하기

  • Computer.java
    public abstract class Computer {
        public abstract void display();
        public abstract void typing();
        public void turnOn() {
            System.out.println("전원을 켭니다.");
        }
        public void turnOff() {
            System.out.println("전원을 끕니다.");
        }
    }
    • 추상 클래스에서는 abstract 예약어가 없는 추상 메서드가 있으면 오류가 발생한다.
  • DeskTop.java
    public class DeskTop extends Computer {
    	@Override
        public void display() {
            System.out.println("DeskTop display()");
        }
      
        @Override
        public void typing() {
            System.out.println("DeskTop typing()");
        }
    }
    • 추상 메서드를 재정의해서 사용
  • NoteBook.java
    public abstarct class NoteBook extends Computer {
        @Override
        public void display() {
            System.out.println("NoteBook disply()");
        }
    }
    • NoteBook 클래스는 추상 메서드를 하나 가지고 있기 때문에 추상 클래스가 됨
  • MyNoteBook.java
    public class MyNoteBook extends NoteBook {
    	  @Override
        public void typing() {
        	  System.out.println("MyNoteBook typing()");
        }
    }
    • 모든 추상메서드가 구현된 클래스 이므로 abstarct예약어를 사용하지 않음

추상 클래스를 만드는 이유

  • 추상 클래스는 인스턴스로 생성할 수 없음
    • DeskTop, NoteBook, MyNoteBook 클래스는 상위 클래스의 Computer를 상속받았으므로 Computer형으로 선언하여 사용할 수 있음
  • 추상 클래스에서 구현하는 메서드
    • 추상 클래스는 상속을 하기 위해 만든 클래스
    • 실제 하위 클래스에서 내용을 각각 다르게 구현해야 한다면, 구현 내용을 추상 메서드로 남겨 두고 하위 클래스에 구현을 위임
      • 구현된 메서드 : 하위 클래스에서 공통으로 사용할 구현 코드, 하위 클래스에서 재정의할 수도 있음
      • 추상 메서드 : 하위 클래스가 어떤 클래스냐에 따라 구현 코드가 달라짐
profile
개발 블로그🌐 개발일지💻

0개의 댓글