07.오버로딩(Overloading)과 오버라이딩(Overriding)
by SANGGI JEON
오버로딩(Overloading)과 오버라이딩(Overriding)
-
자바에서 다형성을 지원하는 방법으로 오버로딩과 오버라이딩이 있음
- 오버로딩(Overloading): 매개변수의 유형과 개수를 다르게 함으로써 같은 이름의 메소드를 여러 개 가지게 하는 방법
- 오버라이딩(Overriding): 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 방법
1. 오버로딩(Overloading)
- 매개변수의 유형과 개수를 다르게 함으로써 같은 이름의 메소드를 여러 개 가지게 하는 방법
// 예제 1-1. Car.java
package com.jremind.exam01;
public class Car {
String company = "Volvo";
String model = "XC90";
String color = "black";
int horsePower = 175;
Car(){}
Car(String company){
this.company = company;
}
Car(String company, String model){
this(company);
this.model = model;
}
Car(String company, String model, String color){
this(company, model);
this.color = color;
}
Car(String company, String model, String color, int horserPower){
this(company, model, color);
this.horsePower = horserPower;
}
void printFields() {
System.out.println(this.company + " "+ this.model + " "+ this.color + " "+this.horsePower);
}
}
package com.jremind.exam01;
public class CarMain {
public static void main(String[] args) {
Car myCar1 = new Car();
myCar.printFields();
Car myCar2 = new Car("Volvo");
myCar2.printFields();
Car myCar3 = new Car("Volvo", "x2");
myCar3.printFields();
Car myCar4 = new Car("Volvo", "x2", "Black");
myCar4.printFields();
Car myCar5 = new Car("Volvo", "x2", "Red", 170);
myCar5.printFields();
}
}
2. 오버라이딩(Overriding)
- 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 방법
- Bird와 Dog 클래스에서 Animal를 상속받아 자신에 맞게 sound() 메소드를 재정의 해줌
// 예제1-1. Animal.java
package com.jremind.exam03;
public abstract class Animal {
public String kind;
public void live() {
System.out.println("먹고 찐다");
}
public abstract void sound();
}
// 예제1-2.Brid.java
package com.jremind.exam03;
public class Bird extends Animal{
public Bird() {
this.kind = "조류";
}
@Override
public void sound() {
// TODO Auto-generated method stub
System.out.println("짹짹");
}
}
// 예제1-3. Dog.java
package com.jremind.exam03;
public class Dog extends Animal{
public Dog() {
this.kind = "포유류";
}
@Override
public void sound() {
// TODO Auto-generated method stub
System.out.println("멍멍");
}
}
// 예제1-4. AnimalMain.java
package com.jremind.exam03;
public class AnimalMain {
public static void main(String[] args) {
Dog jindoDog = new Dog();
Bird sparrow = new Bird();
System.out.println(jindoDog.kind);
System.out.println("---------------------");
animalSound(new Dog());
animalSound(new Bird());
}
public static void animalSound(Animal animal) {
animal.sound();
}
}
Subscribe via RSS