내 코드에 대해 질문이 있습니다. 나는 추상적으로 선언 된 Employee 클래스를 가진다. 그 밑에는 3 가지 추상 메소드, 추상 문자열 부서, 추상 int 작업 일 및 추상 void print_info가 있습니다.추상 메서드에서 변수에 액세스 한 후 null을 반환합니다.
이제 Employee 추상 클래스를 확장하는 2 등급 Tester를 만들었습니다. 나는 추상적 인 방법을 구현했다. 내가 Tester의 인스턴스를 생성하고 테스터 클래스에서 print_info 호출 할 때
abstract class Employee {
abstract String department();
abstract int work_days();
abstract void print_info();
}
class Tester extends Employee{
String dept;
int work_days;
@Override
String department() {
dept = "QA Department";
return dept;
}
@Override
int work_days() {
work_days = 5;
return work_days;
}
@Override
void print_info() {
System.out.println("Department :> " + dept + "Working Days :> " + work_days);
}
}
class Demo {
public static void main(String[] args){
Employee emp_tester = new Tester();
emp_tester.print_info();
}
}
이제, 변수 부서 및 work_days는 null를 돌려 0으로
나는 추상화의 규칙을 거역 했습니까? 비평가들은 많이 받아 들여진다. 감사합니다
실제 질문은 무엇입니까? 당신은 무슨 일이 일어나는가를 이해하는데 문제가 있는가, 아니면 좋은 스타일/나쁜 스타일에 관한 질문 일 뿐인가? –
안녕하세요 당신은 추상 클래스 메소드를 호출하는 이유는 무엇입니까? 당신은 이미 Employee 클래스와 is-A 관계를 설정했습니다. 동적 다형성을 사용하지 않고 테스터 자체의 객체를 생성하고 메소드를 호출합니다. – Pradeep
@Pradeep 일반적인 방법이 Employee에 들어갈 수 있습니다. 추상화가 필요함 –