• 추상클래스란 ?
: 하나 이상의 추상 메소드를 포함하는 클래스이다. 추상 메서드는 선언만 하고 구현하지 않은 메서드로 abstract를 명시한다.
• 추상 클래스 사용법
- 클래스 정의 시 abstract를 명시한다.
- 추상 메서드를 하나 이상 포함한다.
- 추상 클래스는 완전하지 않기 때문에 객체를 생성할 수 없다.
- 하위 클래스에서 상속 받은 모든 추상 메서드를 구현하면 객체를 생성할 수 있다.
- 하위 클래스에서 추상 메서드를 모두 구현하지 않으면 추상 메서드가 하나라도 구현하지 않은 상태로 남아 있으면 그 하위 클래스도 추상 클래스이다.
- 추상 클래스는 하위 클래스의 공통점을 뽑아 상속해줄 목적으로 만들고, 하위 클래스에 기본 틀을 제공한다.
• 추상 클래스 예제
// GrandParent.java
public abstract class GrandParent {
String name;
int age;
// 함수를 만드는데
// 함수를 이름만 만들어 놓는다.
abstract void print();
abstract void test();
}
// Parent.java
public abstract class Parent extends GrandParent {
// String name;
// String age;
// 추상클래스를 상속받아서 개발하는 클래스는
// 추상클래스의 모든 추상함수를 다 구현해 주어야 한다.
@Override
void print() {
System.out.println("Parent");
System.out.println("name : " + name);
}
}
// Child.java
public class Child extends Parent {
// String name;
// int age;
String hobby;
@Override
void test() {
System.out.println("Hobby : " + hobby);
}
}
// AbstractMain.java
public class AbstractMain {
public static void main(String[] args) {
Child c = new Child();
c.name = "홍길동";
c.age = 23;
c.hobby = "넷플릭스 보기";
c.print();
c.test();
}
}
'JAVA' 카테고리의 다른 글
[ JAVA / 자바 ] ArrayList 란 ? ArrayList 사용법 (0) | 2022.07.06 |
---|---|
[ JAVA / 자바 ] 인터페이스란 ? 인터페이스 사용법 (0) | 2022.07.06 |
[ JAVA / 자바 ] 업캐스팅(Upcasting), 다운캐스팅(Downcasting)이란? (0) | 2022.07.05 |
[ JAVA / 자바 ] 부모생성자 호출을 위한 super 사용법 (0) | 2022.07.05 |
[ JAVA / 자바 ] super 란? super 사용법 (0) | 2022.07.04 |