on
Java 상속2 메서드오버라이딩, 다형성
Java 상속2 메서드오버라이딩, 다형성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
public class Pet { //부모클래스 String name; int age; String gender; public Pet( String name, int age, String gender) { super (); this .name = name; this .age = age; if (gender = = "암컷" | | gender = = "수컷" ) { this .gender = gender; } else { System . out . println ( "다시입력하세요" ); }; } public String getPet() { return name + "\t" + age + "\t" + gender; } public void getPPet() { System . out . println ( "멍멍멍멍" ); } } /////////////////////////////////////////// public class Cat extends Pet { String color; public Cat( String name, int age, String gender, String color) { super (name, age, gender); this .color = color; } @Override public String getPet() { // TODO Auto-generated method stub return super .getPet() + "\t" + color; } } /////////////////////////////////////////// public class Dog extends Pet { String species; public Dog( String name, int age, String gender, String species) { super (name, age, gender); this .species = species; } @Override public String getPet() { // TODO Auto-generated method stub return super .getPet() + "\t" + species; } public void getDog() { //자식에게만 있는 메서드가 있다면 그건 출력안됨(유일메서드) System . out . println ( "강아지뛴다" ); } } ///////////////////////////////////////////// public class Test { public static void main( String [] args) { Pet []p = { new Cat( "나비" , 2 , "수컷" , "흰색" ), new Cat( "하늘" , 3 , "수컷" , "노란색" ), new Cat( "야옹" , 4 , "수컷" , "갈색" ), new Dog( "멍멍" , 5 , "암컷" , "리트리버" ), new Dog( "망치" , 6 , "수컷" , "불독" ) };
//전체출력 for (Pet pet : p) { System . out . println (pet.getPet()); pet.getPPet(); // } //자식에게 오버라이딩된게 있으면 부모께 아니라 자식꺼로 호출됨 그래서 color, species가나옴 //자식에게만 있는 메서드가 있다면 그건 출력안됨 //Cat만출력하기 for (Pet pet : p) { if (pet instanceof Cat) { System . out . println (pet.getPet()); }; } } } Colored by Color Scripter
from http://cocoshin.tistory.com/19 by ccl(A) rewrite - 2021-11-19 03:28:22