본문 바로가기
▶대학생활/IT동아리 CADI

[CADI 2주차 미션] JAVA 오버라이딩, 오버로딩과 접근제어자

by 브라더 준 2018. 5. 21.

<CADI 2주차 미션>


1. 정기모임때 진행한 내용 복습

- 따로 포스팅 http://markim94.tistory.com/88

 


2. 상속을 활용한 예제 자바 프로그램 만들어보기

- 실습간 진행한 animal 프로젝트에서 부모 클래스의 private 속성들에 대하여 값을 변경, 출력해주는 코드로 확장하기.


Animal.java

package ClassTest;

public class Animal {
	private double weight;
	private String picture;
	
	void eat() {
		System.out.println("eat() 호출됨.");
	}
	
	void sleep() {
		System.out.println("sleep() 호출됨.");
	}
	
	void setWeight(double weight) {  // weight를 설정해주는 메소드, weight는 private이므로 설정해주는 메소드가 별도로 필요함.
		this.weight = weight;
	}
	
	void printWeight() {
		System.out.println(this.weight);  // weight를 출력해주는 메소드
	}

}

Eagle.java

package ClassTest;

public class Eagle extends Animal{
	private int wings = 2;
	void fly() {
		System.out.println("fly() 호출됨.");
	}
}


Lion.java

package ClassTest;

public class Lion extends Animal{
	private int legs = 4;
	void roar() {
		System.out.println("roar() 호출됨.");
	}
}


AnimalTest.java

package ClassTest;

public class AnimalTest {
	
	public static void main(String[] args) {
		Eagle eagle = new Eagle();
		eagle.eat();
		eagle.sleep();
		eagle.fly();
		eagle.setWeight(20); // eagle의 weight를 20으로 설정
		eagle.printWeight(); // weight 출력
		
		Lion lion = new Lion();
		lion.roar();
		lion.eat();
		lion.sleep();
		lion.setWeight(30); // lion의 weight를 3으로 설정 
		lion.printWeight(); // lion의 weight 출
		
		eagle.printWeight(); // lion의 weight와 eagle의 weight는 별개임을 알 수 있음. 
		
	}
}


실행결과




3. 패키지 override01의 overrideExample.java 주석달기
package override01;
	
class SuperClass{ 	// 부모 클래스
	public void itis() { 	// 부모클래스의 itis 메소드 
		System.out.println("It's super class"); // it's super class 출력 
	}
}

class SubClass extends SuperClass{  // 부모 클래스를 상속(extends)해서 만든 자식 클래스
	public void itis() {	// 자식 클래스의 itis 메소드, 부모 클래스의 itis 메소드를 재정의(오버라이딩).
		System.out.println("It's sub class"); // it's sub class 출력
	}
}

class overrideExample { 	// 재정의한 메소드를 확인하고자 만든 메인 클래스
	public static void main(String[] args) { 
		SuperClass sc = new SuperClass(); // 부모 클래스를 sc로 객체화함.
		SubClass bc = new SubClass(); 	  // 자식 클래스를 bc로 객체화함.
		
		sc.itis();	//부모 클래스의 itis메소드 호출
		bc.itis();	//자식 클래스의 itis메소드 호출
	}
}



반응형