abstract class Person
{
private String name ; // 이름
private int age ; // 나이
public Person()
{
}
public Person(String n , int a)
{
this.name = n ;
this.age = a ;
}
public String getName()
{
return name ;
}
public void setName(String name )
{
this.name = name ;
}
public int getAge()
{
return age ;
}
public void setAge(int age)
{
this.age = age ;
}
// 잠자기
public void sleep()
{
System. out.println(this .getName() + "이(가) 잠자기를 시작함.");
}
// 말하기 (추상메소드 적용)
public abstract void speek();
}
class Student extends Person
{
public Student()
{
}
public Student(String n , int a)
{
super(n , a );
}
// 말하기 (추상메소드 적용)
@Override
public void speek()
{
System. out.println(this .getName() + "이(가) 말하기를 시작함.");
}
// 공부하기
public void study()
{
System. out.println(this .getName() + "이(가) 공부를 시작함.");
}
}
class StudentWorker extends Student
{
public StudentWorker()
{
}
public StudentWorker(String n , int a)
{
super(n , a );
/*setName(n);
setAge(a);*/
}
// 공부하기 @오버라이딩
@Override
public void study()
{
System. out.println("매우 바쁜 " + this.getName() + "이(가) 공부를 시작함." );
}
// 일하기
public void work()
{
System. out.println(this .getName() + "이(가) 일하기를 시작함.");
}
}
public class Exam02
{
public static void main(String [] agrs)
{
// Person의 instance (Setter를 통해 필드값 설정)
/*Person cgs = new Person();
cgs.setName("최규식"); // 사람의 이름 설정
cgs.setAge(20); // 사람의 나이 설정
System.out.println(" cgs의 이름 : " + cgs.getName()); // 사람의 이름 출력
System.out.println(" cgs의 나이 : " + cgs.getAge() + "세"); // 사람의 나이 출력
cgs.speek(); // 말하기 메소드 실행 */
// Person의 instance (생성자를 통해 필드값 설정)
/*Person steve = new Person("Steve Jobs", 60); // 생성자를 통해서 멤버변수 초기화
System.out.println(" steve의 이름 : " + steve.getName()); // 사람의 이름 출력
System.out.println(" steve의 나이 : " + steve.getAge() + "세"); // 사람의 나이 출력
*/
// -------------------------------------------------------------------------------------
// Student의 instance (Setter를 통해 필드값 설정)
Student student_cgs = new Student ();
student_cgs.setName("학생 최규식" ); // 이름 설정
student_cgs.setAge(20); // 나이 설정
System. out.println("student_cgs의 이름 : " + student_cgs.getName()); // 학생의 이름 출력
System. out.println("student_cgs의 나이 : " + student_cgs.getAge()); // 학생의 나이 출력
student_cgs.study(); // 공부하기 메소드 실행
student_cgs.speek(); // 말하기 메소드 실행
// -------------------------------------------------------------------------------------
// StudentWorker의 instance (Setter를 통해 필드값 설정)
StudentWorker studentWorker_cgs = new StudentWorker();
studentWorker_cgs.setName("고학생 최규식" );
studentWorker_cgs.setAge(22);
System. out.println("studentWorker_cgs의 이름 : " + studentWorker_cgs.getName()); // 고학생의 이름 출력
System. out.println("studentWorker_cgs의 이름 : " + studentWorker_cgs.getAge()); // 고학생의 나이 출력
studentWorker_cgs.work();
studentWorker_cgs.study(); // 공부하기 (@오버라이딩) 메소드 실행
// StudentWorker의 instance (생성자를 통해 필드값 설정)
StudentWorker studentWorker_steve = new StudentWorker("고학생 스티브잡스" , 25); // 생성자를 통해서 멤버변수 초기화
System. out.println("studentWorker_steve의 이름 : " + studentWorker_steve.getName()); // 고학생의 이름 출력
System. out.println("studentWorker_steve의 이름 : " + studentWorker_steve.getAge()); // 고학생의 나이 출력
studentWorker_steve.work();
}
}