프로젝트를 다른 작업자들과 협엽할때 abstract를 사용하여 작업의 능률을 올릴수있다.
먼저 클래스를 abstract를 사용해서 만든다
그리고 함수도 abstract를 활용해서 만드는데 함수의 내용이 없이 함수 이름만 작성한다.
public abstract class GrandParent {
String name;
int age;
abstract void print();
abstract void test();
}
# abstract는 클래스를 만들어놓고 상속받아서 쓰는 용도다.
이제 위의 클래스를 상속받는 클래스를 만든다.
public class Parent extends GrandParent {
@Override
void print() {
// TODO Auto-generated method stub
System.out.println("Parent");
System.out.println("name = "+name);
}
@Override
void test() {
// TODO Auto-generated method stub
}
}
# 추상클래스를 상속받는 클래스는 모든 추상함수를 받아서 다 구현해줘야 한다.
# 함수 이름을 작업할때 동일하게 정해주어 혼선이 없게끔 한다.
만약 위 함수 중 하나의 함수만 작업하고 다음 작업자에게 나머지 함수를 넘겨줘야 한다면
이 클래스에도 abstract를 사용하고 작업하지 않는 override된 함수를 지워준다.
public abstract class Parent extends GrandParent {
@Override
void print() {
// TODO Auto-generated method stub
System.out.println("Parent");
System.out.println("name = "+name);
}
}
# test 함수는 작업하지않고 print만 작업하려 한다.
이제 다음 작업자는 test함수를 넘겨준 작업자가 작업한 클래스를 상속하여 함수를 만든다.
public class Child extends Parent {
// 상속받은 멤버변수
// String name;
// int age;
String hobby;
@Override
void test() {
// TODO Auto-generated method stub
System.out.println("Hobby = "+hobby);
}
}
메인에서 확인해보자
public class AbstractMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Child c = new Child();
c.name = "홍길동";
c.age = 30;
c.hobby = "영화";
c.print();
c.test();
}
}
# 구현이 잘된다.
'Java' 카테고리의 다른 글
| [Java] 문자열 처리 (0) | 2022.07.06 |
|---|---|
| [Java] 인터페이스(Interface) (0) | 2022.07.06 |
| [Java] 다운캐스팅(Downcasting) (0) | 2022.07.05 |
| [Java] 업캐스팅(Upcasting) (0) | 2022.07.05 |
| [Java] 상속과 메소드 오버라이딩(Method Overriding), super (0) | 2022.07.04 |
댓글