티스토리 뷰
/* [출력 결과]
*
* 이름 : 홍길동 <--- Family의 toString()에서 작성
* 아빠는 나가서 일을 한다 <-- Job인터페이스를 상속받아서
* Father의 work()에서 작성
* 이름 : 김순희
* 엄마는 집안일을 한다
*
* 이름 : 홍돌이
* 아들은 공부를 한다
*/
Main
package family;
public class MainEx {
public static void main(String[] args) {
Father ob1=new Father("홍길동");
Mother ob2=new Mother("김순희");
Son ob3=new Son("홍돌이");
System.out.println(ob1); //or ob1.toString()
System.out.println(ob2);
System.out.println(ob3);
}
}
/* [출력 결과]
*
* 이름 : 홍길동 <--- Family의 toString()에서 작성
* 아빠는 나가서 일을 한다 <-- Job인터페이스를 상속받아서
* Father의 work()에서 작성
* 이름 : 김순희
* 엄마는 집안일을 한다
*
* 이름 : 홍돌이
* 아들은 공부를 한다
*/
Job
package family;
interface Job {
public String work();
}
Family
package family;
public class Family {
private String name;
public Family() {
}
public Family(String name) {
super();
this.name = name;
}
@Override
public String toString() {
return "이름 : "+name ;
}
}
package family;
public class Father extends Family implements Job {
public Father() {
}
public Father(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public String work() {
// TODO Auto-generated method stub
return "아빠는 나가서 일을 한다";
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString()+" \n"+work()+"\n";
}
}
package family;
public class Mother extends Family implements Job {
public Mother() {
}
public Mother(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public String work() {
// TODO Auto-generated method stub
return "엄마는 집안일을 한다";
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString()+" \n"+work()+"\n";
}
}
package family;
public class Son extends Family implements Job {
public Son() {
}
public Son(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public String work() {
// TODO Auto-generated method stub
return "아들은 공부를 한다";
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString()+" \n"+work()+"\n";
}
}
Family[] f = new Family[]{new Father("홍길동"),
new Mother("김순희"),
new Son("홍돌이")};
//포이치 방식으로 돌려도 아래와 출력결과는 같다
// 각각 다른 자식 클래스지만 부모클래스로 배열을 만들어서 한번에 나오게 할 수 있다
for(Family ob:f) {
System.out.println(ob);
}
댓글