추상 클래스는
실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었다.
객체를 직접 생성해서 사용할 수 없다.
추상 클래스는 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 |