JAVA 추상 메서드와 추상 클래스
추상 메서드
추상 메서드는 선언부만 정의하고 구체적인 내용은 비워놓은 메서드이다. 구체적인 내용을 적지 않았기 때문에 이를 상속받은 하위 클래스에서는 사용하려면 반드시 수현하라는 의미 이다. 추상 메서드를 선언하는 방법은 제어자 abstract
를 메서드명 앞에 붙여주면 된다. 그리고 구체적인 내용이 없으므로 괄호{}
를 생략하고 세미콜론을 붙여 준다.
abstract void methodA();
추상 클래스
추상 클래스는 추상 메서드를 멤버로 가지는 클래스이다. 추상 클래스는 일반적인 메서드도 가질 수 있지만 추상 메서드를 하나라도 포함하는 클래스이다. 추상 클래스는 인스턴스를 생성할 수 없다. 그러므로 추상 크르래스는 그 자체로 사용되기보다는 자식 클래스를 완전하게 작성하기 위한 기본적인 틀로써 사용된다.
abstract class Cellphone{
abstract void methodA();
}
추상 클래스는 추상 메서드를 포함하기 때문에 이를 상속받은 자손 클래스는 반드시 추상 메서드를 구체적으로 작성해주어야된다. 추상 클래스를 선언하기 위해서는 앞에 제어자 abstract
를 붙여 선언한다. 내부에 추성 메서드가 있다면 반드시 클래스명 앞에 abstract
를 붙여야 한다.
abstract class Pokemon {
String name;
abstract void attack();
abstract void sound();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Pikachu extends Pokemon {
Pikachu() {
this.name = "피카츄";
}
@Override
void attack() {
System.out.println("전기 공격");
}
@Override
void sound() {
System.out.println("피카 피카!");
}
}
class Squirtle extends Pokemon {
Squirtle() {
this.name = "꼬부기";
}
@Override
void attack() {
System.out.println("물 공격");
}
@Override
void sound() {
System.out.println("꼬북 꼬북!");
}
}
public class AbstractClass1 {
public static void main(String[] args) {
Pikachu pick = new Pikachu();
System.out.println("이 포켓몬은 "+pick.getName());
pick.attack();
pick.sound();
Squirtle squ = new Squirtle();
System.out.println("이 포켓몬은 "+squ.getName());
squ.attack();
squ.sound();
}
}
Author And Source
이 문제에 관하여(JAVA 추상 메서드와 추상 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@krtmdgus2/JAVA-추상-메서드와-추상-클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)