추상클래스

  • 구체적이지 않은 클래스
  • 새, 포유류, 파충류
  • 모호한 클래스는 부모클래스가 가능하지만, 객체가 될 수 없다.
  • 객체가 되려면 구체적이어야 함.
  • 추상클래스를 부모클래스로 사용할 수 있다.

추상클래스 선언

  • abstract 키워드를 통해 선언
  • 미완성 추상 메소드를 하나라도 포함할 경우, 클래스 또한 추상 클래스가 됨으로 클래스에도 abstract 키워드를 적용.
  • 추상메소드 : 내용이 없는 메소드, 구현이되지 않은 메소드
  • return 타입 앞에 abstract 키워드
  • 추상클래스는 인스턴스 생성 불가
	public abstract class Bird{
        public abstract void sing();
//새마다 내는 소리가 달라 구체적으로 알수  없을 때, abstract 추상 메소드

        public void fly(){
            System.out.println("날다.");
        }// 일반 메소드
    }	
	

추상클래스 상속 받는 클래스 생성

  • 상속받은 자녀 추상 클래스는 부모 추상클래스 의 추상 메소드를 구현
  • 추상 클래스를 상속 받고 추상 메소드를 구현하지 않음.

해당 자녀 추상 클래스도 추상클래스가 됨.

    public class Goose extends Bird{
        @Override
        public void sing() {
            System.out.println("꽉꽉!!");
        }// 추상 메소드 설정
    }
    public class GooseExam { 
        public static void main(String[] args) {
            Goose goose = new Goose();
            goose.sing();
            goose.fly();

            //Bird b = new Bird();
            // 오류. 스는  부모클래스 역할은 할 수 있으나, 객체로서의 역할은 할 수 없음.
        }   
    }

참고

profile
공부에는 끝이 없다

0개의 댓글

Powered by GraphCDN, the GraphQL CDN