1. 오버로딩 시 생성자 에러(Constructor Class is already defined in Class)
'Child(String)' is already defined in 'com.java.javacode.overloding.Child'
‘Class(Type)’ is already defined in ‘package.class’
생성자를 오버로딩(Overloading) 시 매개변수를 받는 자료형이 종류와 갯수가 동일할 경우 에러가 발생합니다.
이유는, 해당 type을 가진 생성자가 이미 선언되었기 때문입니다.
생성자가 다르게 보일지라도 컴퓨터의 입장에서는 클래스 객체 생성 시 어떤 생성자를 가지고 생성해야하는지 판단하지 못하기 때문입니다.
Parent
public class Parent {
public void print(){}
}
Child
public class Child extends Parent{
private String c_id;
private String c_name;
public Child() {
}
public Child(String id) {
this.c_id = id;
}
public Child(String name) {
this.c_name = name;
}
public Child(String id, String name) {
this.c_id = id;
this.c_name = name;
}
}
'OOP > Java' 카테고리의 다른 글
쓰레드(Thread)와 멀티쓰레드(Multi-Thread) (0) | 2024.06.14 |
---|---|
Java의 Excepton클래스 종류 및 구조 (0) | 2024.04.17 |
Java 정규 표현식(Regular Expression) (0) | 2023.11.27 |
Optional이란? (0) | 2023.11.24 |
Java JUnit vs Spring JUnit (0) | 2022.12.20 |