결국 무엇이든 해내는 사람

(Java)Day09-상속 본문

두서없는 공부 노트/JAVA

(Java)Day09-상속

kkm8257 2020. 8. 18. 15:58
반응형

상속은 extends 를 통해 사용가능

 

상속을 받은 클래스는 상속 해준  클래스의 모든 것을 가지고 시작한다. 변수든 메소드든

 

고로 유지보수와 재사용성이 매우 좋아진다.

 

아래는 Animal이라는 클래스를 만들고 여기에 기본적인 메소드와 변수를 만들어준다음 Cat  Dog Monkey 클래스에 그대로 상속해줌

그러면 Cat Dog Monkey 클래스는 필요의 경우 메소드를 각각 알아서 더 만들어주면 되고 , 혹은 Animal에서 만들어놓은 메소드나 변수를 그대로 사용하면 그만이다.

 

package Inheritance;

public class Animal {
	
	
	String name;
	String color;
	String age;
	
	public void attack() {
		
		System.out.println(this.name + "이 매섭게 저항한다!");
	}

	public void runaway() {
		System.out.println(this.name + "이 준내 빠르게 도망간다!");
	}
	
	public void beCaptured() {
		System.out.println(this.name + "이 포획되었다!");
	}
	
	
	public void showInfo() {

		System.out.println("이름 : "+this.name);
		System.out.println("색깔 : "+this.color);
		System.out.println("나이 : "+this.age);
	
	}
}

 

 

package Inheritance;

public class Cat extends Animal {

	
	
	
	public Cat(String a, String b, String c) {

		this.name=a;
		this.color=b;
		this.age=c;
	
	}
	
}

 

package Inheritance;

public class Dog extends Animal{

	

	
	public Dog(String a, String b, String c) {

		this.name=a;
		this.color=b;
		this.age=c;
	
	}
	
}

 

 

package Inheritance;

public class Monkey extends Animal{


	
	public Monkey(String a, String b, String c) {

		this.name=a;
		this.color=b;
		this.age=c;
	
	}
	
}

 

 

 

package Inheritance;

import java.util.ArrayList;

public class Main {

	public static void main(String[] args) {
		
		ArrayList<Animal> deck =new ArrayList<>();
		
		Cat cat = new Cat("냥냥이","black","2");
		Dog dog = new Dog("멍멍이","brown","4");
		Monkey mk = new Monkey("숭이","white_brown","2");
		
		
		
		cat.beCaptured();
		cat.attack();
		cat.runaway();
		
		dog.runaway();
		dog.beCaptured();
		
		mk.attack();
		mk.beCaptured();
		
		deck.add(cat);
		deck.add(dog);
		deck.add(mk);
		
		for(int i =0 ; i <deck.size();i++) {
			System.out.println("-------------------------");
			deck.get(i).showInfo();
			
		}
		
	}
}

 

 

위의 메인처럼 사용해도 무방. 실제로 Cat Dog Monkey 클래스안에는 아무것도 없지만 상속 받은 메소드나 변수 사용 쌉가능

 

 

반응형
Comments