10일차 - 추상

|
package Abstract;

//추상클래스 : abstract class A {
//하나 이상의 추상 메소드가 있으면, 그 클래스는 추상 클래스이어야 합니다.
//추상 메소드와 추상변수로 이루어진다.
//다른 점 : 객체를 절대로 생성이 불가합니다.
abstract class Shape{
	abstract void draw(); //설계만 하고, 내용이 없습니다.
}

class Rectangle extends Shape{

	@Override // : 추상 메소드 오버라이딩
	void draw() {
		System.out.println("1. 사각형을 아주 멋지게 만듭니다.");
	}
	
}

class Circle extends Shape{

	@Override
	void draw() {
		System.out.println("2. 원형을 아주 예쁘게 만듭니다.");
	}
	
}

class Triangle extends Shape{

	@Override
	void draw() {
		System.out.println("3. 삼각형을 아주 멋드러지게 만듭니다.");
	}
	
}

public class AbstractSample1 {

	public static void main(String[] args) {
		
		Rectangle rt = new Rectangle();
		Circle cc = new Circle();
		Triangle tg = new Triangle();
		rt.draw();
		cc.draw();
		tg.draw();
		

	}

}
--------------------------------------------------------------

package Abstract;

/* 현대 자동차가 있습니다.
 * 자동차에 대하여 상태를 표시하는 메소드를 구현하여 보세요.
 * 1. 자동차가 출발합니다.
 * 2. 자동차가 운행중입니다.
 * 3. 자동차가 좌회전을 합니다.
 * 4. 자동차가 우회전을 합니다.
 * 5. 자동차가 후진을 합니다.
 * 6. 자동차가 정지합니다.
 */

abstract class State{
	abstract void gear();
}

class Start extends State{
	void gear(){
		System.out.println("1. 자동차가 출발합니다.");
	}
}

class Drive extends Start{
	void gear(){
		System.out.println("2. 자동차가 운행중입니다.");
	}
}

class Left extends Drive{
	void gear(){
		System.out.println("3. 자동차가 좌회전을 합니다.");
	}
}

class Right extends Left{
	void gear(){
		System.out.println("4. 자동차가 우회전을 합니다.");
	}
}

class Back extends Right{
	void gear(){
		System.out.println("5. 자동차가 후진을 합니다.");
	}
}

class Stop extends Back{
	void gear(){
		System.out.println("6. 자동차가 정지합니다.");
	}
}

public class AbstractSample2 {

	public static void main(String[] args) {
		
		Start st = new Start();
		Drive dr = new Drive();
		Left le = new Left();
		Right ri = new Right();
		Back ba = new Back();
		Stop so = new Stop();
		st.gear();
		dr.gear();
		le.gear();
		ri.gear();
		ba.gear();
		so.gear();

	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

24일차  (0) 2019.07.26
23일차  (0) 2019.07.25
10일차 - 상속  (0) 2019.07.05
9일차 - 과제  (0) 2019.07.05
9일차  (0) 2019.07.04
And