본문 바로가기

java/자바

[java] 추상 클래스

추상 클래스는 

실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었다.

객체를 직접 생성해서 사용할 수 없다.

추상 클래스는 new 연산자를 사용해서 인스턴스를 생성시키지 못한다.

 

class Ant extends Animal

 

 

용도?

1. 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적

2. 실체 클래스를 작성할 때 시간을 절약

 

 

선언

public abstract class Phone{
	//필드
    public String owner;
    //생성자
    public Phone(String owner){
    	this.owner = owner;
     }
    //메소드
    public void turnOn(){
    	System.out.println("핸드폰 전원을 켭니다");
    }
    public void turnOff(){
    	System.out.println("핸드폰 전원을 끕니다");
    }
    
    //추상 메소드
    public abstract void sound(); // 상속 받으면 강제로 재정의 해라
}

 

사용

public class SmartPhone extends Phone{
	
    //생성자
    public SmartPhone(String owner){
    	super(owner);
     }
    //메소드
    public void kakaoTalk(){
    	System.out.println("카카오톡을 합니다");
    }
}

 

 

실행

public class Example {
	public static void main(String[] args){
    	SmartPhone smartPhone = new SmartPhone("홍길동");
        smartPhone.turnOn();
        smartPhone.internetSearch();
        smartPhone.turnOff();
      }
 }

'java > 자바' 카테고리의 다른 글

문자열 자르기  (0) 2022.01.25
enum 열거타입  (0) 2022.01.24
[java] 전략 패턴 (Strategy pattern)  (0) 2022.01.01
[java] 싱글톤  (0) 2022.01.01
[java] interface  (0) 2021.12.30