본문 바로가기

자바

14. 추상 클래스

추상 클래스는 추상적으로 정의한 클래스이다. 객체를 만들지 못한다. 추상 클래스를 이용하여 사용자가 재정의를 통해 상황에 맞게 메소드를 이용할 수 있다. 

 

package com.AbstractPackage;

abstract public class Abstract {
	public int num = 1;
	public void show() {
		System.out.println("Abstract의 함수");
	}
	abstract void plus(); //가상함수
}

 

package com.AbstractPackage;

public class Normal1 extends Abstract {
	//함수 오버라이딩
	public void show() {
		System.out.println("Normal1의 함수");
	}
	
	//추상클래스에서 함수를 가져와 구체화 함
	public void plus() {
		num = num + 10;
		System.out.println("Normal은 10을 더한다" + num);
	}

 

package com.AbstractPackage;

public class Normal2 extends Abstract{
	public void plus() {
		num = num * 2;
		System.out.println("Normal2는 2를 곱합니다." + num);
	}
}

 

package com.AbstractPackage;

public class Main {
	public static void main(String[] args) {
		Normal1 norm1 = new Normal1();
		Normal2 norm2 = new Normal2();
		
		norm1.show(); //구현된 멤버함수
		norm1.plus(); //오버라이드된 멤버함수
		
		System.out.println();
		
		norm2.show(); //구현된 멤버함수
		norm2.plus(); //일반 멤버함수
	}
}

 

추상클래스의 상속과 일반 상속에는 차이가 있다. 부모 클래스의 메소드를 자식 클래스에서 변경할 일이 없다면 일반클래스를 이용하여 상속하고 자식클래스에서 꼭 재정의를 해야 하는 부분이 있다면 추상클래스를 이용하여 상속한다.

'자바' 카테고리의 다른 글

16. 핸드폰 예제로 알아보는 인터페이스  (0) 2019.07.29
15. 인터페이스  (0) 2019.07.29
13. 상속2  (0) 2019.07.21
12. 상속1  (0) 2019.07.20
11. static  (0) 2019.07.19