네모 세모 원 이라는 클래스를 정의했을때, 하트 별 등을 생성하기위해
도형이라는 "부모클래스"를 정의 == 추상클래스
=> 올바른 설계방식은 아님

현재는 부모를 나중에 만들어낼일이 없음

package day14;

//만약에 코드를 작성할때, 복·붙을 시도했다면, 설계를 의심
abstract class Shape {
	// 추상클래스
	// 특징
	// 1. 상속관계에서 주로 상위클래스 개념
	// 2. 객체를 생성할 수 없다. == 객체화가 안됨
	int point;
	int line;
	
	abstract void draw();
	// 추상 메소드 : 내용물 == {}을 가질수 없다.
	// 추상메소드를 가지려면 그 클래스는 무조건 추상클래스여야 한다.
	// 추상클래스를 상속받은 클래스 중 draw를 하는 객체가 없으니 abstract를 쓴다.
	// 추상클래스에 추상메소드가 있으면 상속받은 클래스에서는 무조건 오버라이딩을 해주어야 한다.
}

class Circle extends Shape {

	@Override
	void draw() {
		// TODO Auto-generated method stub
		
	}
	// 추상메소드가 가진 강제성

}

class Squere extends Shape {

	void draw() {
		System.out.println("네모 그리기");
	}
}

class Tri extends Shape {

	void draw() {
		System.out.println("세모 그리기");
	}
}

public class Abstract {
	public static void main(String[] args) {
		Circle c = new Circle();
		//c.draw();
		
		// Shape() = new Shape(15,20); // 객체화가 안됨
	}
}

+ Recent posts