자바
자바 추상클래스 용도와 사용방법
iminu
2022. 7. 6. 12:06
public abstract class GrandParent {
String name;
int age;
// 함수를 만드는데!
// 함수를 이름만 만들어 놓는다!!!! (내용은 없다!)
abstract void print();
abstract void test();
}
public abstract class Parent extends GrandParent{
// String name;
// int age;
@Override
void print() {
// TODO Auto-generated method stub
System.out.println("Parent");
System.out.println("name = " + name);
}
// 추상클래스를 상속받아서 개발하는 클래스는
// 추상클래스의 모든 추상함수를 다 구현해 줘야 한다!
}
public class Child extends Parent{
// String name;
// int age;
String hobby;
@Override
void test() {
// TODO Auto-generated method stub
System.out.println("Hobby = " + hobby);
}
}
public class AbstractMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Child c = new Child();
c.name = "홍길동";
c.age = 30;
c.hobby = "영화";
c.print();
c.test();
}
}
추상클래스에서 필요한 함수이름들을 적어두고 추상클래스를 상속받은 클래스에서 함수를 구현하도록 설계하는 것이 목적이다. 함수 설계와 구체적인 구현을 분리해서 분업할 수 있다.
클래스 앞에 abstract를 붙이면 된다. 함수를 다 구현하지 않으면 Parent 클래스처럼 abstact를 붙여서 추상클래스로 만들어 줘야한다. child 클래스에서 남은 함수들을 다 구현했다. child 클래스 객체로 상속받은 속성과 함수를 이용할 수 있다.