1. μμ κ΄κ³
- μμμ κΈ°μ‘΄ ν΄λμ€μ νλμ λ©μλλ₯Ό μλ‘μ΄ ν΄λμ€μμ μ¬νμ©ν μ μκ² ν΄μ€λ€.
- extendsλ₯Ό λΆμ΄λ©΄ λλ©°, λμμ νλλ§ μ ν κ°λ₯νλ€.
- λΆλͺ¨ ν΄λμ€(μμ μ νλμ λ©μλλ₯Ό λ€λ₯Έ ν΄λμ€μ μ μ©νλ ν΄λμ€)
public class Car {
public void move() {
System.out.println("μ°¨λ₯Ό μ΄λν©λλ€.");
}
public void openDoor(){
System.out.println("λ¬Έμ μ½λλ€.");
}
}
- μμ ν΄λμ€(λΆλͺ¨ ν΄λμ€λ‘λΆν° νλμ λ©μλλ₯Ό μμ λ°λ ν΄λμ€)
public class ElectricCar extends Car {
public void charge(){
System.out.println("μΆ©μ ν©λλ€.");
}
}
public class GasCar extends Car {
public void fillUp(){
System.out.println("κΈ°λ¦μ μ£Όμ ν©λλ€.");
}
}
2. μμκ³Ό λ©λͺ¨λ¦¬ ꡬ쑰
- mainλ¬Έμ΄ μλ€κ³ κ°μ ν΄ λ³΄μ.
- μμ κ°μ΄ λ³ΈμΈ νμ μμ νμΈ ν, μμΌλ©΄ λΆλͺ¨ ν΄λμ€λ₯Ό νμΈνλ€.
3. μμκ³Ό λ©μλ μ€λ²λΌμ΄λ©
- μ€λ²λΌμ΄λ© : μμλ°μ κΈ°λ₯μ μμμ΄ μ¬μ μ νλ κ²
public class NewCar extends Car {
@Override
public void move(){
System.out.prinln("λΉ λ₯΄κ² μ΄λν©λλ€.");
}
public void charge(){
System.out.println("μΆ©μ ν©λλ€");
}
}
- @Override : μ»΄νμΌλ¬κ° λ³΄κ³ λ©μλκ° μ νν μ€λ²λΌμ΄λ λμλμ§ νμΈν΄μ€λ€. μ€μλ‘ μ€λ²λΌμ΄λ©μ λͺ»νλ κ²½μ°λ₯Ό λ°©μ§ν΄ μ£ΌκΈ° μν κΈ°λ₯
4. μ€λ²λ‘λ©κ³Ό μ€λ²λΌμ΄λ©
1) λ©μλ μ€λ²λ‘λ©
- λ©μλ μ΄λ¦μ΄ κ°κ³ νλΌλ―Έν°κ° λ€λ₯Έ λ©μλλ₯Ό μ¬λ¬κ° μ μνλ κ²
2)λ©μλ μ€λ²λΌμ΄λ©
- νμ ν΄λμ€μμ μμ ν΄λμ€ λ©μλλ₯Ό μ¬μ μ νλ κ³Όμ μ μλ―Έ
3) λ©μλ μ€λ²λΌμ΄λ© 쑰건
- λ©μλ μ΄λ¦ : λ©μλ μ΄λ¦μ΄ κ°μμΌ νλ€.
- λ©μλ 맀κ°λ³μ(νλΌλ―Έν°) : 맀κ°λ³μ(νλΌλ―Έν°) νμ , μμ, κ°μκ° κ°μμΌ νλ€.
- λ°ν νμ : λ°ν νμ μ΄ κ°μμΌ νλ€. λ¨ λ°ν νμ μ΄ νμ ν΄λμ€ νμ μΌ μ μλ€.
- μ κ·Ό μ μ΄μ : μ€λ²λΌμ΄λ© λ©μλμ μ κ·Ό μ μ΄μλ μμ ν΄λμ€μ λ©μλλ³΄λ€ λ μ νμ μ΄μ΄μλ μλλ€.
- μμΈ : μ€λ²λΌμ΄λ© λ©μλλ μμ ν΄λμ€μ λ©μλλ³΄λ€ λ λ§μ μ²΄ν¬ μμΈλ₯Ό throwsλ‘ μ μΈν μ μλ€.
- static, final, private : ν€μλκ° λΆμ κ²½μ° μ€λ²λΌμ΄λ© λ μ μλ€.
- μμ±μ μ€λ²λΌμ΄λ© : μμ±μλ μ€λ²λΌμ΄λ© ν μ μλ€.
4. super
- λΆλͺ¨μ μμμ νλλͺ μ΄ κ°κ±°λ λ©μλκ° μ€λ²λΌμ΄λ© λμ΄ μμΌλ©΄ μμμμ λΆλͺ¨μ λ©μλλ₯Ό νΈμΆν μ μλλ°, superμ μ¬μ©νλ©΄ λΆλͺ¨λ₯Ό μ°Έμ‘°ν μ μλ€.
- λΆλͺ¨ ν΄λμ€
public class ClassA {
public ClassA() {
System.out.println("λΆλͺ¨ ν΄λμ€");
}
}
- μμ ν΄λμ€
public class ClassB extends ClassA {
public ClassB(int a) {
super(); //κΈ°λ³Έ μμ±μ μλ΅ κ°λ₯
System.out.println("ClassB μμ±μ a = " + a);
}
public Class B(int a, int b) {
super(); //κΈ°λ³Έ μμ±μ μλ΅ κ°λ₯
System.out.println("ClassB μμ±μ a = " + a + " b = " + b);
}
}
- μ μ²λΌ μμμ λ°μΌλ©΄ μμ±μμ 첫μ€μ super(...)μ μ¬μ©ν΄ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆν΄μΌνλ€.
- λΆλͺ¨ ν΄λμ€μ μμ±μκ° κΈ°λ³Έ μμ±μμΈ κ²½μ° super()μλ΅ κ°λ₯
public class ClassC extends ClassB {
public ClassC(){
super(10, 20);
System.out.println("ClassC μμ±μ");
}
}
- ClassBμ μμ±μ μ€ ClassCλ νλλ§ μ ννλ©΄ λλ€. (ClassB(int a, int b)λ₯Ό μ ν)
- ClassBμλ κΈ°λ³Έ μμ±μκ° μμΌλ―λ‘ super()μ μλ΅ν μ μλ€.
public class SuperMain{
public static void main(String[] args) {
ClassC classC = new ClassC();
}
}
μ€νκ²°κ³Ό Class A μμ±μ Class B μμ±μ a=10 b=20 Class C μμ±μ |
- μμ±μμ μ€ν μμκ° μ΅μμ λΆλͺ¨λΆν° νλμ© μλλ‘ λ΄λ €μ€λ κ²μ νμΈν μ μλ€. μ¦, μ΄κΈ°νλ μ΅μμ λΆλͺ¨λΆν° μ΄λ£¨μ΄μ§λ€.
μΆμ² : κΉμνμ μ€μ μλ°-κΈ°λ³ΈνΈ
λκΈ