자바기초(추상클래스)

bitna's study note·2022년 4월 26일
0

자바

목록 보기
54/119

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();
		}
		
	}
}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

Powered by GraphCDN, the GraphQL CDN