본문 바로가기

Backend/Java

[인프런] 클래스, 상속, 구현, 코드

예제로 공부하는 Java 100 문제풀이 Part.3

 

오버 로딩: 객체 생성 시 이에 맞는 생성자를 호출하는 것.
오버 라이딩: 메서드 재정의. 메서드를 다른 용도로 사용하는 것.(덮어쓰는 것)

 

class Person{
	// Field
	int gender;
	int power;
	
	// Constructor
	Person(){
		this.gender = 1; // 1:남성, 2:여성
		this.power = 100; // 기본 파워
	}
	// Method
	void walk() {
		System.out.println("걸어가고 있어요");
	}
}
class Hero extends Person{
	// Field
	String name;
	int age;
	
	// Constructor
	Hero(){}
	Hero(String name, int age){
		this.name = name;
		this.age = age;
	}
	
	// Method
	void walk() {
		System.out.println("두 배로 빨리 걸어가고 있어요"); 
	}
	
	void eat() {
		System.out.println("밥 먹고 있어요");
	}
	
	void displayPerson() {
		System.out.println("이름:"+name+", "+"나이: "+age+", "+"성별: "+gender+", "+"파워: "+power);
	}
}

public class Java100_Ex33 {
	public static void main(String[] args) {
		//[1]: 객체 생성
		Person p1 = new Person();
		p1.walk();
		
		// [2]: 상속을 통한 슈퍼맨 생성
		Hero h1 = new Hero("슈퍼맨", 20);
		System.out.println("이름: "+h1.name);
		System.out.println("나이: "+h1.age);
		System.out.println("성별: "+h1.gender); // 부모 클래스 필드(변수)
		System.out.println("파워: "+h1.power);  // 부모 클래스 필드(변수)
	}
}