java 기초 공부 내용 정리(추상메서드, 추상클래스)

홍준성·2022년 6월 3일
0

java 기초 공부

목록 보기
21/39

추상메서드

추상메서드는 선언부만 정의하고 구체적인 내용은 비워놓은 메서드

주의할 점

추상메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모클래스의 추상 메서드를 구현해야한다.
즉, 자식클래스에서 메서드를 구체적으로 작성하기 위해 부모클래스에서는 내용을 적지 않는 것

abstract 리턴타입 메서드명();
## 구현하지 않으므로 {}생략하고 ;으로 마무리

추상클래스

추상 클래스는 추상 메서드를 멤버(필드)로 갖는 클래스

주의할 점

  1. 추상클래스는 일반 메서드 필드에 존재가 가능하다.
  2. 단, 추상 메서드를 하나라도 포함해야한다.
  3. 객체를 생성할 수 없다.

사용 목적

구현은 자식 클래스가 하도록 메서드의 기능을 비워놓고 싶을 때 사용한다.

absctract class 클래스명{
	...
    abstract 리턴타입 메서드명();
}
	public static void main(String[] args) {
		Shape shapes[]=new Shape[3];
		
		//부모의 객체배열 요소에 자식 값 넣기=> 업 캐스팅
		
		shapes[0]=new Rect();
		shapes[1]=new Circle();
		shapes[2]=new Line();
		
		for(int i=0;i<3;i++) {
			shapes[i].draw();
		}
		
	}
}

//추상화
abstract class Shape{
	abstract void draw();
}

class Rect extends Shape{
	void draw() {
		System.out.println("사각형을 그리다");
	}
}

class Circle extends Shape{
	void draw() {
		System.out.println("원을 그리다");
	}
}

class Line extends Shape{
	void draw() {
		System.out.println("선을 그리다");
	}
}
profile
준성이의 개발자 공부 velog

0개의 댓글