4월21일 내용 정리
1.추상메서드는 선언부는 있지만 구현부가 없는 메서드로 상속받아 자식클래스에서 오버라이딩하여 메서드를 구현해준다.
이때,추상메서드를 포함하고 있는걸 추상클래스 이다.
2.부모로부터 2개의 추상메서드를 상속 받았는데, 1개는 구현했는데, 1개는 구현 안했으면 클래스에 abstract 붙여 추상클래스로 만들어 주던가,
2개 모두 구현해주어 완성클래스로 만들어주면 에러가 없어짐.
3.추상클래스는 상사가 큰틀을 짜주면 거기서 부하직원들이 그틀을 가지고 자신에 맞게 추가로 고쳐서 사용하기위해 추상화를 쓴다.
추상화는 자식 클래스에서 구현을 해줘야 하기 때문에 사용시 꼭 추상메서드를 구현 해줘야 한다.
4.추상클래스는 인스턴스(객체)를 생성할수 없다.
접근할때는 상속받은 자식 객체를 통해서 접근할수 있으며,
할아버지(추상메서드4개 넘겨줌)->아버지(2개구현 하고 2개추상메서드로 남기기)->아들(마지막 2개를 구현)
그러면 아들클래스가 할아버지, 아버지 클래스를 접근할수 있다.
추상 부모 클래스
package study_0421;
public abstract class Shape { //추상메서드가 있어서 추상클래스로 지정해야 한다.
double pi=3.14;
public void shapeinfo() { //일반 메서드
System.out.println("도형 입니다.");
}
abstract void shapeinfo01();//추상 메서드 자식클래스에서 꼭 오버라이딩을 해서 구현해야함.
abstract void drow();
}
상속 받은 자식 클래스
추상메서드 구현해줌
package study_0421;
public class Cicle extends Shape{
int radius;
public Cicle (int radius) {
this.radius=radius;
}
@Override
void shapeinfo01() {
System.out.println("도형을 상속받아 원으로 구현했다.");
}
@Override
void drow() {
System.out.println("추상클래스 상속받아 구현했다.");
}
public double findArea() {
shapeinfo();
return pi*radius*radius;
}
}
실행 클래스
package study_0421;
public class main {
public static void main(String[] args) {
Cicle c =new Cicle(5);
c.drow();
c.shapeinfo();
System.out.println("원의 넓이="+c.findArea());
}
}