4월 25일 내용정리
오늘은 추상클래스 문제풀고 풀이시간
부모클래스
package study_0425;
public abstract class jeonuchi {
//필드 선언
String name;
String job;
String characteristic;
// String name="전우치"; ============>필드를 동일하게 상속 받을때 이렇게 써줌,
// String job="도사"; ============>필드가 동일하면 생성자가 필요없음. 초기화 할 필요가 없기때문
// String characteristic="변신을 한다.";
//생성자
public jeonuchi(){}
public jeonuchi(String name,String job,String characteristic){
this.name=name;
this.job=job;
this.characteristic=characteristic;
}
//메서드 선언
public abstract void transformation();
public abstract void changeRole();
}
상속받은 자식클래스-1
package study_0425;
public class dosa extends jeonuchi{
//필드선언
//생성자
public dosa() {}
public dosa(String name,String job,String characteristic) {
super(name,job,characteristic);
}
//메서드 선언
@Override
public void transformation() {
System.out.println("전우치가 도사로 변신했다.");
}
@Override
public void changeRole() {
System.out.println("바람을 일으킨다.");
System.out.println("청동거울을 훔친다.");
}
}
상속받은 자식클래스-2
package study_0425;
public class okwang extends jeonuchi{
//생성자
public okwang() {}
public okwang(String name,String job,String characteristic) {
super(name,job,characteristic);
}
//메서드 선언
@Override
public void transformation() {
System.out.println("전우치가 옥황상제가 되었다.");
}
@Override
public void changeRole() {
System.out.println("천둥번개를 일으킨다.");
System.out.println("벌을 준다.");
}
}
상속받은 자식클래스-3
package study_0425;
public class actor extends jeonuchi{
//생성자
public actor() {}
public actor(String name,String job,String characteristic) {
super(name,job,characteristic);
}
//메서드 선언
@Override
public void transformation() {
System.out.println("여배우가 되었다.");
}
@Override
public void changeRole() {
System.out.println("예쁜 치마를 입었다.");
System.out.println("화장을 한다.");
}
}
상속받은 자식클래스-4
package study_0425;
public class animal extends jeonuchi{
//생성자
public animal() {}
public animal(String name,String job,String characteristic) {
super(name,job,characteristic);
}
//메서드 선언
@Override
public void transformation() {
System.out.println("전우치가 말이 되었다.");
}
@Override
public void changeRole() {
System.out.println("바다를 달린다.");
System.out.println("하늘을 달린다.");
}
}
실행 클래스
package study_0425;
import java.util.ArrayList;
import java.util.Arrays;
import Study_0421_caffe.Headoffice;
public class main {
public static void main(String[] args) {
jeonuchi dosa01 = new dosa("전우치","도사","변신을 한다.");
jeonuchi okwang01 = new okwang("해리포터","마술사","마술을 한다.");
jeonuchi actor01 = new actor("헐크","초록괴물","초록 괴물로 변신한다.");
jeonuchi animal01 = new animal("아이언맨","로봇","로봇으로 변신 한다.");
// jeonuchi[] myjeonuchi=new jeonuchi[4];
// myjeonuchi[0]=dosa01;
// myjeonuchi[1]=okwang01;
// myjeonuchi[2]=actor01;
// myjeonuchi[3]=animal01;
// jeonuchi[] myjeonuchi= {dosa01,okwang01,actor01,animal01}; 이렇게 배열에 넣어주기도함
//
// for(int i=0;i<4;i++) {
// myjeonuchi[i].changeRole();
// myjeonuchi[i].transformation();
// }
ArrayList<jeonuchi> myjeonuchi01 = new ArrayList<jeonuchi>();
myjeonuchi01.add(dosa01);
myjeonuchi01.add(okwang01);
myjeonuchi01.add(actor01);
myjeonuchi01.add(animal01);
// ArrayList<jeonuchi> myjeonuchi01 = new ArrayList<jeonuchi>(Arrays.asList(dosa01,okwang01,actor01,animal01));
// ArrayList에 배열을 넣어준다. 선언과 동시에 한줄로 주소 받아서 초기화
for(jeonuchi uchi: myjeonuchi01) {
uchi.changeRole();
uchi.transformation();
}
}
}