팀플하는데 메소드를 서로 다른 이름으로 한다면? 혹은 메소드를 안 만들었다면?
===>강제적으로 만들게 해야 한다.
이 때 추상메소드가 필요하다.
// 추상 메소드(=미완성 메소드)
// 추상 메소드가 하나라도 있으면 클래스가 추상 클래스가 되어야 한다.
public abstract class CommonMember {
public abstract String getInfo();
}
=> 상속받아간 자식 클래스들은 추상 클래스를 구현해주지 않으면 안된다.
CommonMember cmbr = new CommonMember(); // 오류!!
public abstract class CommonMember {
// 추상 메소드(=미완성 메소드)
// 추상 메소드가 하나라도 있으면 클래스가 추상 클래스가 되어야 한다.
// 추상 클래스의 경우 추상 메소드가 있어도 다른 메소드를 쓸 수 있다.
public abstract String getInfo();
}
public class Gujikja extends CommonMember {
// >>추상 메소드를 오버라이딩해서 구현함, 메소드 오버라이딩 <<
// === 구직자의 정보를 한줄로 출력해주는 메소드 생성하기 ===
@Override
public String getInfo() {
// eomjh qWe****** 엄정화 961020 여 27 2024-01-31 10:30:40
StringBuilder sb = new StringBuilder();
sb.append(super.getId() +"\t");
sb.append(super.getPasswd().substring(0, 3) + "*".repeat(this.getPasswd().length() - 3) +"\t");
sb.append(getName()+"\t");
sb.append(jubun.substring(0, jubun.length()-1) +"\t");
sb.append(getGender()+"\t"); // 성별
sb.append(getAge()+"\t"); // 만나이
sb.append(super.getRegister_day());
return sb.toString();
} // end of String getInfo()-------------------
}
public class Company extends CommonMember {
@Override
public String getInfo() {
DecimalFormat df = new DecimalFormat("#,###"); // 숫자를 3자리 마다 콤마(,)를 찍어주는 것이다.
// 회사명 업종 사업자등록번호 자본금
return super.getName() + "\t" + job_type + "\t" + business_number + "\t" + df.format(seed_money) + "원";
}// end of public String getInfo()-------------------------
}