개발공부

[Java] Abstract Class 추상 클래스 본문

Java/Basic

[Java] Abstract Class 추상 클래스

mscha 2022. 7. 6. 12:13

추상 클래스

실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스이다.

추상 클래스란 클래스 변수나 메소드들을 선언만 하고 구현은 실체 클래스에서 하도록 만든다.

주로 협업을 할 때 필드와 메소드 이름을 통일하여 유지보수성을 높이고 통일성을 유지할 수 있다.

실체 클래스에서는 필드와 메소드의 이름이 주어졌기 때문에 이것의 기능을 구현하기만 하면 된다.

이때 기능 구현은 메소드 오버라이딩을 통해서 해야한다.

 

예제

GrandParent.java

public abstract class GrandParent {
	
	String name;
	int age;
	
	// 함수를 만드는데, 
	// 함수를 이름만 만들어 놓는다. (내용은 없다.)
	
	public abstract void print();
	
	public abstract void test();
	
	
}

 

Parent.java

public abstract class Parent extends GrandParent{

	// 추상 클래스를 상속 받아서 개발하는 클래스는
	// 추상클래스의 모든 추상 함수를 다 구현 해줘야 한다.
	// 모두 구현하지 않을시는 이 클래스도 abstract class로 만들어야 한다.
	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("Parent");
		System.out.println("name : " + name);
		System.out.println("age : " + age);
	}
	
}

 

Child.java

추상클래스의 모든 기능을 구현한 클래스는 실체 클래스라고 한다.

이 실체클래스를 객체 생성하면 된다.

public class Child extends Parent{
	
	String hobby;
	
	@Override
	public void test() {
		System.out.println("Hobby = " + hobby);
	}

}

 

Main.java

public class Main {

	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();
	}

}