[자바 (JAVA)] 34. 오버라이드 문제 풀어보기

귤's avatar
Feb 14, 2025
[자바 (JAVA)] 34. 오버라이드 문제 풀어보기

오버로딩 문제

package ex05.ch02; class Animal { int i = 1; String name = "동물"; } class Cat extends Animal { String name = "고양이"; int age = 18; } class Dog extends Animal { String name = "강아지"; } public class ExVar01 { public static void main(String[] args) { Animal a1 = new Animal(); // [animal] -> 메모리에 떴다는 표시 System.out.println(a1.i + ", " + a1.name); Dog a2 = new Dog(); // [Animal, Dog] System.out.println(a2.i + ", " + a2.name); // 상속의 목적 = 타입 일치 Animal a3 = new Dog(); // [animal(i=1, name=동물), dog(name = 강아지)] System.out.println(a3.i + ", " + a3.name); Cat a4 = new Cat(); // [animal(i=1,name=동물), Cat(k=2, name = 고양이)] System.out.println(a4.i + ", " + a4.name); Animal a5 = new Cat(); // [animal(i=1,name=동물), Cat(k=2, name = 고양이)] System.out.println(a5.i + ", " + a5.name); // System.out.println("Animal을 바라보는데 자식의 k값 찾아지나 : k=" + a5.k); } }
notion image

오버라이드 문제

package ex05.ch02; class 운동선수 { public int getHp() { return 2315388; } //setter public void setHp(int hp) { } } class 타이슨 extends 운동선수 { int hp = 100; public int getHp() { return hp; } // context (문맥) public void setHp(int hp) { // 90 this.hp = hp; } } class 맥그리너 extends 운동선수 { int hp = 100; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } } public class ExMeh02 { // 오버로딩의 한계 static void attack(맥그리너 u1) { u1.hp = u1.hp - 10; } static void attack(타이슨 u1) { u1.hp = u1.hp - 10; } static void attack(운동선수 u1) { u1.setHp(u1.getHp() - 10); } public static void main(String[] args) { // 맥그리너 u1 = new 맥그리너(); // attack(u1); // System.out.println(u1.hp); // 타이슨 u2 = new 타이슨(); // attack(u2); // System.out.println(u2.hp); 운동선수 u3 = new 타이슨(); attack(u3); System.out.println(u3.getHp()); // 맥그리너 u1 = new 맥그리너(); // attack(u1); // System.out.println(u1.hp); // 타이슨 u2 = new 타이슨(); // attack(u2); // System.out.println(u1.hp); } }
notion image
Share article

gyul