JAVA 입문 시작
22.11.29 추상 클래스 (메서드)
강준석
2022. 11. 29. 12:32
728x90
부모 클래스 => 자식 클래스.
부모의 클래스를 강제로 자식클래스로 구현.
무족건 써서 써야한다.
(이건 또 뭐야;;)
public void abc(); //코드 끝
예시)
package 추상클래스;
public abstract class Shape {
String type;
public Shape(String type) {
this.type = type;
}
abstract double area();
abstract double length(); //상속 받는 자식클래스는 무적건 무족건 사용해야함
}
package 추상클래스;
public class Rectangle extends Shape {
int width, height;
public Rectangle(int width, int height) {
super("사각형");
this.width = width;
this.height = height;
}
//상속 받은 추상메서드 생성
@Override
double area() {
return width * height;
}
@Override
double length() {
return 2 * (width + height);
}
@Override
public String toString() {
return "Shape [type=" + type + ", width=" + width + ", height=" + height + "]";
}
}
package 추상클래스;
public class Circle extends Shape{
int r; //반지름
public Circle( int r) {
super("원");
this.r = r;
}
@Override //컴퓨터에게 이건 오버라이딩이라 안내하는 용도
double area() {
return r*r*Math.PI; //넓이 구하기
}
@Override
double length() {
return 2*r*Math.PI; //둘레 구하기
}
@Override
public String toString() {
return "Shap [type =" + type + ", r="+r+"]";
}
}
package 추상클래스;
public class ShapeEx {
public static void main(String[] args) {
Shape[] shapes = new Shape[2];
shapes[0]=new Circle(10);
shapes[1]=new Rectangle(5,5);
for(Shape s : shapes) {
System.out.println(s);
System.out.println("넓이 : "+s.area()+" 둘레 "+s.length());
}
}
}
결과
Shap [type =원, r=10]
넓이 : 314.1592653589793 둘레 62.83185307179586
Shape [type=사각형, width=5, height=5]
넓이 : 25.0 둘레 20.0
728x90