본문 바로가기
Java/Java

[Java] 추상 클래스(Abstract Class)

by 기록하는_사람 2022. 10. 15.

추상 클래스(Abstract Class)

📌 추상 클래스(Abstract Class)

: 하나 이상의 추상 메소드를 갖는 클래스.

 

💡  추상 메소드(Abstract Methods)

: 메소드의 몸체가 비어 있는 메소드. 

 

📌 추상 클래스 대상으로 인스턴스 생성 불가능.

      다른 클래스에 의해 추상 메소드가 구현되어야 함. 

 

📄 Subject.java

package prac_abstract_class;

public abstract class Subject {  // 추상 클래스
	public void printTestDate(String sub, int d) {
		System.out.println(sub + " Test : " + d);
	}
	
	public abstract void printTime();  // 추상 메소드. 
	public abstract void printTest();  // 추상 메소드. 
}

📄 Kor.java

package prac_abstract_class;

public class Kor extends Subject {
	@Override
	public void printTime() {
		System.out.println("Kor Time : PM 01:00 - PM 03:00");
	}
	
	@Override
	public void printTest() {
		System.out.println("Kor Test Q1. apple -> ?");
	}
	
}

📄 Math.java

package prac_abstract_class;

public class Math extends Subject {
	@Override
	public void printTime() {
		System.out.println("Math Time : AM 09:00 - AM 11:00");
	}
	
	@Override
	public void printTest() {
		System.out.println("Math Test Q1. 1 + 1 = ?");
	}
	
}

📄 SubjectMain.java

package prac_abstract_class;

public class SubjectMain {

	public static void main(String[] args) {
		// Subject sub = new Subject();  // 추상 클래스는 인스턴스 생성 불가능.
		Subject kor = new Kor();
		Subject math = new Math();
		
		kor.printTime();
		kor.printTestDate("Kor", 221015);
		kor.printTest();
		
		System.out.println();
		math.printTime();
		math.printTestDate("Math", 221015);
		math.printTest();
	}

}
// Kor Time : PM 01:00 - PM 03:00
// Kor Test : 221015
// Kor Test Q1. apple -> ?
//
// Math Time : AM 09:00 - AM 11:00
// Math Test : 221015
// Math Test Q1. 1 + 1 = ?

'Java > Java' 카테고리의 다른 글

[Java] 인터페이스(interface)  (1) 2022.10.15
[Java] 템플릿 메서드  (0) 2022.10.15
[Java] 상속  (0) 2022.10.14
[Java] ArrayList  (0) 2022.10.14
[Java] 배열(Array)  (0) 2022.10.14

댓글