1. μ΄ν΄λ¦½μ€(Eclipse) Implicit super constructor Object() is undefined for default constructor μλ¬λ?
μ΄ν΄λ¦½μ€μμ Implicit super constructor Object() is undefined for default constructor μλ¬λ λν΄νΈ μμ±μ(default constructor)μ λν μ묡μ μΈ(super) μμ±μ Object()μ μ μκ° μμ λ λ°μνλ μ€λ₯μ λλ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μΈ μλ°λ ν΄λμ€λ₯Ό μ μν λ, ν΄λΉ ν΄λμ€μ μμ±μ(Constructor)λ₯Ό λͺ μμ μΌλ‘ μ μν μ μμ΅λλ€. μμ±μλ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ΄κΈ°ννλ μν μ λ΄λΉν©λλ€. λ§μ½ μ΄λ€ ν΄λμ€μ μμ±μκ° λͺ μμ μΌλ‘ μ μλμ§ μμλ€λ©΄, μ»΄νμΌλ¬λ μ΄λ₯Ό μλμΌλ‘ μμ±ν΄μ£Όλλ°, μ΄λ₯Ό λν΄νΈ μμ±μλΌκ³ ν©λλ€.
κ·Έλ°λ°, μ΄ν΄λ¦½μ€μμ μμ μλ¬κ° λ°μνλ μ΄μ λ ν΄λμ€κ° μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνμ§ μμμ λ, μλμΌλ‘ μμ±λλ λν΄νΈ μμ±μκ° super() ν€μλλ₯Ό ν΅ν΄ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλλ°, Object ν΄λμ€μ μμ±μλ₯Ό μ°Ύμ μ μκΈ° λλ¬Έμ λλ€. Object ν΄λμ€λ λͺ¨λ ν΄λμ€μ κΈ°λ³Έ λΆλͺ¨ ν΄λμ€λ‘μ, λͺ¨λ ν΄λμ€λ μ묡μ μΌλ‘ Object ν΄λμ€λ₯Ό μμλ°μ΅λλ€.
μ΄ μλ¬λ Object ν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆνλ λ°©λ²μ΄ μκΈ° λλ¬Έμ λ°μν©λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μλ λͺ μμ μΈ μμ±μλ₯Ό μ μνκ±°λ, μμμ ν΅ν΄ Object ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλ λ°©λ²μ μ¬μ©ν΄μΌ ν©λλ€. μ΄ν΄λ¦½μ€λ μμ±μκ° μλ ν΄λμ€μ λν΄ μλμΌλ‘ λν΄νΈ μμ±μλ₯Ό μμ±ν΄μ£Όμ§λ§, λͺ μμ μΈ μμ±μκ° μ μλλ©΄ λν΄νΈ μμ±μλ μμ±λμ§ μμ΅λλ€.
μ΄ μλ¬λ μ£Όλ‘ μμμ ν΅ν΄ ν΄λμ€λ₯Ό ꡬνν λ λ°μνλλ°, λΆλͺ¨ ν΄λμ€μ λͺ μμ μΌλ‘ μ μν μμ±μκ° μλ κ²½μ°μλ λ°μνμ§ μμ΅λλ€.
2. μ΄ μλ¬κ° λ°μνλ μ΄μ
μ΄ μλ¬κ° λ°μνλ μ΄μ λ μλ°μ ν΄λμ€κ° Object ν΄λμ€λ₯Ό μμλ°λ λν΄νΈ μμ ꡬ쑰 λλ¬Έμ λλ€. Object ν΄λμ€λ λͺ¨λ ν΄λμ€μ μ΅μμ λΆλͺ¨ ν΄λμ€μ΄λ©°, μλμΌλ‘ λͺ¨λ ν΄λμ€κ° Object ν΄λμ€λ₯Ό μμλ°μ΅λλ€.
μλ°μμ ν΄λμ€λ₯Ό μ μν λ, μμ±μ(Constructor)λ₯Ό λͺ μμ μΌλ‘ μ μνμ§ μμλ€λ©΄, μ»΄νμΌλ¬λ κΈ°λ³Έμ μΌλ‘ λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ μμ±ν©λλ€. λν΄νΈ μμ±μλ 맀κ°λ³μλ₯Ό κ°μ§μ§ μλ μμ±μλ‘μ, ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ΄κΈ°ννλ μν μ μνν©λλ€.
μ΄ν΄λ¦½μ€μμ λ°μνλ μ΄ μλ¬λ ν΄λμ€κ° μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνμ§ μμμ λ, μλμΌλ‘ μμ±λλ λν΄νΈ μμ±μκ° super() ν€μλλ₯Ό ν΅ν΄ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλλ°, μ΄ λ λΆλͺ¨ ν΄λμ€μΈ Object ν΄λμ€μ μμ±μλ₯Ό μ°Ύμ μ μκΈ° λλ¬Έμ λ°μν©λλ€. Object ν΄λμ€λ 맀κ°λ³μλ₯Ό κ°μ§μ§ μλ λν΄νΈ μμ±μλ₯Ό κ°μ§κ³ μμ§ μκΈ° λλ¬Έμ νΈμΆν μ μμ΅λλ€.
μ΄λ¬ν μ΄μ λ‘, ν΄λμ€μμ μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνμ§ μμμ§λ§, Object ν΄λμ€μ μμ±μ νΈμΆμ μν super() ν€μλκ° μλμΌλ‘ μμ±λλ κ²½μ°μ λ°μνλ κ²μ λλ€. μ΄ μλ¬λ μ£Όλ‘ μμμ ν΅ν΄ ν΄λμ€λ₯Ό μ μν λ λ°μνλ©°, Object ν΄λμ€μ μμ±μ νΈμΆμ ν΄κ²°νμ§ μμ μνμμ νλ‘κ·Έλ¨μ΄ μ€νλλ €κ³ ν λ μλ¬κ° λ°μν©λλ€.
3. μ΄ μλ¬λ₯Ό ν΄κ²°νκΈ° μν λ°©λ²λ€
μ΄ μλ¬λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ€μκ³Ό κ°μ λ°©λ²λ€μ μ¬μ©ν μ μμ΅λλ€:
3.1 λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνκΈ°
κ°μ₯ κ°λ¨νκ³ μΌλ°μ μΈ λ°©λ²μ ν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνλ κ²μ λλ€. μμ±μλ₯Ό μ μν¨μΌλ‘μ¨ λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ μμ±νλ κ²μ΄ μλλΌ, λͺ μμ μΌλ‘ μμ±μλ₯Ό νΈμΆν μ μμ΅λλ€. μ΄ κ²½μ°μλ Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯κ° λ°μνμ§ μμ΅λλ€.
public class MyClass {
public MyClass() {
// μμ±μ λ΄μ© μμ±
}
}
3.2 super ν€μλλ₯Ό μ¬μ©νμ¬ Object ν΄λμ€μ μμ±μ νΈμΆνκΈ°
λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνμ§ μμ κ²½μ°, λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ μμ±νλλ°, μ΄ λ super() ν€μλλ₯Ό ν΅ν΄ Object ν΄λμ€μ μμ±μλ₯Ό νΈμΆν©λλ€. μ΄λ Object ν΄λμ€μ μμ±μλ₯Ό νΈμΆνκΈ° μν΄μλ Object ν΄λμ€λ₯Ό λͺ μμ μΌλ‘ μμλ°μμΌ ν©λλ€.
public class MyClass extends Object {
public MyClass() {
super();
// μμ±μ λ΄μ© μμ±
}
}
μμ κ°μ΄ Object ν΄λμ€λ₯Ό μμλ°μμΌλ§ μ»΄νμΌλ¬λ Object ν΄λμ€μ μμ±μλ₯Ό μ°Ύμ μ μμΌλ―λ‘ μ€λ₯κ° λ°μνμ§ μκ² λ©λλ€.
3.3 ν΄λμ€μ μμ μ κ±°νκΈ°
μ΄ μλ¬λ₯Ό ν΄κ²°νλ λ λ€λ₯Έ λ°©λ²μ ν΄λμ€μ μμμ μ κ±°νλ κ²μ λλ€. μμ ꡬ쑰λ₯Ό λ³κ²½ν¨μΌλ‘μ¨ Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μμμ΄ νμνμ§ μμ κ²½μ°, ν΄λμ€κ° Object ν΄λμ€λ₯Ό κΈ°λ³Έμ μΌλ‘ μμλ°μ§ μλλ‘ ν©λλ€.
public class MyClass {
// ν΄λμ€ λ΄μ© μμ±
}
ν΄λμ€μ μμμ μ κ±°ν κ²½μ°, Object ν΄λμ€μ κΈ°λ₯κ³Ό λ©μλλ₯Ό μ§μ μ μΌλ‘ μ¬μ©ν μ μμ§λ§, λλΆλΆμ κ²½μ°μλ μμ μμ΄λ νμν κΈ°λ₯μ ꡬνν μ μμ΅λλ€.
3.4 μ€λ₯ 무μνκΈ°
λ§μ§λ§μΌλ‘, μ΄ μλ¬λ₯Ό ν΄κ²°νκΈ° μν λ°©λ²μ μ€λ₯λ₯Ό 무μνλ κ²μ λλ€. μ΄ λ°©λ²μ Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν΄κ²°νμ§ μλ λμ , μ»΄νμΌλ¬μκ² ν΄λΉ μ€λ₯λ₯Ό 무μνλλ‘ μ§μν©λλ€. μ΄λ¬ν λ°©λ²μ μ£Όμν΄μ μ¬μ©ν΄μΌ νλ©°, μ€λ₯μ μμΈμ΄ λͺ ννκ² μ΄ν΄λκ³ μμ λμλ§ μ¬μ©ν΄μΌ ν©λλ€.
ν΄λμ€ μ μμ @SuppressWarnings("unused")
μ΄λ
Έν
μ΄μ
μ μΆκ°νμ¬ ν΄λΉ μ€λ₯λ₯Ό 무μνλλ‘ μ§μν μ μμ΅λλ€.
@SuppressWarnings("unused")
public class MyClass {
// ν΄λμ€ λ΄μ© μμ±
}
νμ§λ§ μ΄ λ°©λ²μ μ€λ₯μ μμΈμ ν΄κ²°νμ§ μκΈ° λλ¬Έμ κΆμ₯λλ λ°©λ²μ μλλλ€. κ°λ₯νν λͺ μμ μΈ ν΄κ²° λ°©λ²μ μ ννλ κ²μ΄ μ’μ΅λλ€.
4. ν΄κ²° λ°©λ² μ€ κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©λλ λ°©λ²
κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©λλ ν΄κ²° λ°©λ²μ λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνλ λ°©λ²μ λλ€. μ΄ λ°©λ²μ κ°λ μ±μ΄ μ’κ³ μ½λλ₯Ό μ΄ν΄νκΈ° μ½κ² λ§λλ μ₯μ μ΄ μμ΅λλ€.
μΌλ°μ μΌλ‘ ν΄λμ€λ₯Ό μ μν λ μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνκ² λλ©΄ ν΄λΉ ν΄λμ€μ λν΄νΈ μμ±μλ μλμΌλ‘ μμ±λμ§ μμ΅λλ€. λ°λΌμ Object ν΄λμ€μ μμ±μλ₯Ό νΈμΆνκΈ° μν΄ super() ν€μλκ° μλμΌλ‘ μμ±λμ§ μμμ μ΄ μλ¬κ° λ°μνμ§ μμ΅λλ€.
λ€μμ λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνμ¬ μ΄ μλ¬λ₯Ό ν΄κ²°νλ λ°©λ²μ 보μ¬μ€λλ€:
public class MyClass {
public MyClass() {
// μμ±μ λ΄μ© μμ±
}
}
μμ κ°μ΄ μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μνλ©΄, Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ΄ λ°©λ²μ κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©λλ λ°©λ²μ΄λ©°, ν΄λμ€μ ꡬ쑰λ₯Ό λͺ ννκ² λ³΄μ¬μ£Όμ΄ κ°λ μ±μ λμ΄λλ° λμμ΄ λ©λλ€.
5. μ΄ μλ¬λ₯Ό μλ°©νλ λ°©λ²
μ΄ μλ¬λ₯Ό μλ°©νκΈ° μν΄μλ λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνλ κ²μ΄ κ°μ₯ μ’μ λ°©λ²μ λλ€. λν΄νΈ μμ±μλ μλμΌλ‘ νΈμΆλλλ°, μ΄λ Object ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλ €κ³ νλ©΄μ μ€λ₯κ° λ°μν©λλ€. λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μν¨μΌλ‘μ¨ λν΄νΈ μμ±μλ₯Ό νΈμΆνλ κ²μ΄ μλλΌ λͺ μμ μΌλ‘ μμ±μλ₯Ό νΈμΆν μ μμ΅λλ€.
μ΄λ¬ν μλ°© λ°©λ²μ λ€μκ³Ό κ°μ΄ μνν μ μμ΅λλ€:
public class MyClass {
public MyClass() {
// μμ±μ λ΄μ© μμ±
}
}
μμ κ°μ΄ μμ±μλ₯Ό λͺ μμ μΌλ‘ μ μν¨μΌλ‘μ¨ λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ μμ±νμ§ μλλ‘ ν©λλ€. μ΄λ κ² νλ©΄ Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό λ°μμν€μ§ μμ μ μμ΅λλ€.
λν, ν΄λμ€λ₯Ό μ μν λ Object ν΄λμ€λ₯Ό λͺ μμ μΌλ‘ μμλ°λ λ°©λ²λ μ¬μ©ν μ μμ΅λλ€:
public class MyClass extends Object {
public MyClass() {
super();
// μμ±μ λ΄μ© μμ±
}
}
μμ κ°μ΄ Object ν΄λμ€λ₯Ό μμλ°λλ‘ ν¨μΌλ‘μ¨ Object ν΄λμ€μ μμ±μ νΈμΆκ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό μλ°©ν μ μμ΅λλ€.
μ΄λ¬ν λ°©λ²λ€μ μ¬μ©νμ¬ ν΄λμ€λ₯Ό μ μν λ μ€λ₯λ₯Ό μλ°©νλ κ²μ΄ κ°μ₯ μ’μ λ°©λ²μ λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ κ°λ μ±μ λμΌ μ μκ³ , λΆνμν μ€λ₯λ₯Ό 미리 λ°©μ§ν μ μμ΅λλ€.
λκΈ