[JAVA] 간단한 클래스 예제
간단한 클래스 예제
부모 클래스 Animal
public class Animal{//public private protected
private int feetNum;
public Animal(int feetNum){
this.feetNum = feetNum;
}
public void sound(){
System.out.println("기본 동물 울음소리 ~~" );
}
public void introduce(){
System.out.println("기본 동물 소개 ~~");
}
}
부모 클래스를 정의한다.
Animal 생성자는 발의 갯수를 받아 멤버 변수를 초기화한다.
sound 메서드는 동물 기본 울음소리를 출력한다.
introduce 메서드는 동물 기본 소개를 출력한다.
자식 클래스 1 Cat
public class Cat extends Animal{
private boolean isHomeCat;
public Cat(int feetNum, boolean isHomeCat){
super(feetNum);
this.isHomeCat = isHomeCat;
}
@Override
public void sound(){
System.out.println("고양이 냐옹냐옹~");
}
@Override
public void introduce(){
if(this.isHomeCat) System.out.println("나는 집고양이다옹");
else System.out.println("나는 야생 고양이다옹");
}
}
자식 Cat클래스를 정의한다.
public class Cat extends Animal : extends 키워드를 사용하여 Animal의 자식임을 알린다.
super(feetNum) : 부모의 생성자를 사용하여 멤버변수 feetNum을 초기화한다.
sound() : 부모에 이미 정의된 sound를 상속받았으나, 고양이 울음소리로 오버라이드한다. 이제 Cat으로 생성된 객체의 sound()는 고양이 소리가 된다.
introduce() : 부모에 이미 정의된 introduce()를 상속받으나 고양이 소개로 오버라이드한다. 생성자에서 초기화한 isHomeCat에 따라 집고양이인지 아닌지를 출력한다.
자식 클래스 2 Snake
public class Snake extends Animal{
private boolean isPoisonous;
public Snake(int feetNum, boolean isPoisonous){
super(feetNum);
this.isPoisonous = isPoisonous;
}
@Override
public void sound(){
System.out.println("뱀은 쉭쉭쉭~~");
}
@Override
public void introduce(){
if(this.isPoisonous) System.out.println("나는 독이 있다!");
else System.out.println("나는 독이 없다!!!");
}
}
위와 동일
메인 클래스
public class Main {
public static void main(String[] args){
Animal ani1 = new Animal(3);
ani1.sound();
ani1.introduce();
Cat cat1 = new Cat(4, true);
Cat cat2 = new Cat(4, false);
cat1.sound();
cat1.introduce();
cat2.sound();
cat2.introduce();
Snake snake1 = new Snake(0, true);
Snake snake2 = new Snake(0, false);
snake1.sound();
snake1.introduce();
snake2.sound();
snake2.introduce();
Animal[] anis = new Animal[5];
anis[1] = cat1;
anis[2] = cat2;
anis[3] = snake1;
anis[4] = snake2;
for(Animal ani : anis){
if(ani instanceof Cat) System.out.println("캣 소속 : 키운다.");
else if (ani instanceof Snake) System.out.println("뱀 소속 : 죽인다.");
}
System.out.println(snake1 instanceof Snake);//해당 클래스의 인스턴슨인지 확인
System.out.println(cat1 instanceof Cat);//상속 관계에 있어도 true
System.out.println(cat1 instanceof Animal );
}
}
각각의 상황대로 객체를 생성해 클래스를 확인한다.
출력
기본 동물 울음소리 ~~
기본 동물 소개 ~~
고양이 냐옹냐옹~
나는 집고양이다옹
고양이 냐옹냐옹~
나는 야생 고양이다옹
뱀은 쉭쉭쉭~~
나는 독이 있다!
뱀은 쉭쉭쉭~~
나는 독이 없다!!!
캣 소속 : 키운다.
캣 소속 : 키운다.
뱀 소속 : 죽인다.
뱀 소속 : 죽인다.
true
true
true
Process finished with exit code 0
클래스와 상속에 대한 간단한 예제이다. 처음 클래스를 배울 때 이 예제를 잘 확인하면 (아마) 클래스를 이해하는 데에 큰 어려움이 없을 것으로 예상된다