π [Java] π» μμ - μνΌ(λΆλͺ¨)ν΄λμ€μ μλΈ(μμ)ν΄λμ€
π» Java μμ - μνΌ(λΆλͺ¨) ν΄λμ€μ μλΈ(μμ) ν΄λμ€
μλ
νμΈμ. π
μ€λμ μλ°μ μμκ³Ό κ·Έμ λ°λ₯Έ
μνΌ(λΆλͺ¨) ν΄λμ€μ μλΈ(μμ) ν΄λμ€μ λν΄
ν¬μ€ν
ν΄λ³΄κ² μ΅λλ€.
μμ(Inheritance) μ΄λ??
μλ°μ μμ(Inheritance)μ΄λ κΈ°μ‘΄ ν΄λμ€λ₯Ό μ¬μ¬μ©νμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλ κ²μ λ§ν©λλ€.
μ½κ² λ§νμλ©΄ μ€μνμμ λΆλͺ¨μκ² μμμ΄ λΆλͺ¨μ μ¬μ°μ μμ λ°λ κ² μ²λΌ
μλΈ(μμ) ν΄λμ€κ° μνΌ(λΆλͺ¨) ν΄λμ€μ μμ°(λΆλͺ¨ ν΄λμ€μ λ©€λ²)μ λ¬Όλ €λ°λ κ²μ λ»ν©λλ€.
μμμ μ΄μ©νλ©΄ 곡ν΅μ μΈ κΈ°λ₯μ λ€μ μμ±ν νμ μμ΄ μ¬μ¬μ© ν μ μκ³
μ½λμ μ€λ³΅μ μ€μ¬μ€λλ€. λ³΄λ€ μ μ μμ μ½λλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό μ½κ² μμ±ν μ μμ΅λλ€.
extendsλΌλ ν€μλλ₯Ό μ¬μ©ν©λλ€.
ex)
class SubClass extends SuperClass
μνΌν΄λμ€μ μλΈν΄λμ€
μνΌ(λΆλͺ¨) ν΄λμ€μ μλΈ(μμ) ν΄λμ€λ μ΄λ¬ν νΉμ§μ κ°μ§κ³ μμ΅λλ€.
μνΌ(λΆλͺ¨) ν΄λμ€λ₯Ό μμλ°μ λ§λ€μ΄μ§ μλΈ(μμ) ν΄λμ€λ
μνΌ ν΄λμ€μ λ©€λ²μ λ©μλλ₯Ό μκΈ° μμ κ²μ²λΌ μ¬μ©ν μ μμ΅λλ€. (μ½λ μ€λ³΅ μ€μ¬μ€)
νμ§λ§ μνΌν΄λμ€λ μλΈν΄λμ€μ λ©€λ²μ λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
λν μνΌ ν΄λμ€λ μλμ κ°μμ±μ μ μ§ν©λλ€.
μνΌν΄λμ€μμ λ§μ½ μ κ·Όμ§μμκ° public μ΄μλ€λ©΄ μμ λ°μ μλΈν΄λμ€μμλ publicμ λλ€.
μ΄λ‘μΈν΄ μ κ·Όμ§μμμ λ°λ₯Έ μ°¨μ΄κ° λ°μν©λλ€.
-private λ μ€μ§ ν΄λΉ ν΄λμ€μμλ§ μ¬μ©μ΄ κ°λ₯νλ―λ‘ μλΈν΄λμ€μμ μ¬μ©μ΄ λΆκ°ν©λλ€.
-protected λ μνΌν΄λμ€μ μλΈν΄λμ€λ§ μ¬μ©μ΄ κ°λ₯νλ―λ‘ μλΈν΄λμ€μμλ μ¬μ©μ΄ κ°λ₯ν©λλ€.
-μ κ·Όμ§μμκ° μλ κ²½μ° ν¨ν€μ§(package)λ©€λ²λ‘ κ°μ ν¨ν€μ§λ΄μμλ§ μ¬μ©μ΄ κ°λ₯ν©λλ€.
-public μ κ²½μ° λͺ¨λ ν΄λμ€μμ μ¬μ©μ΄ κ°λ₯ν©λλ€.
μνΌν΄λμ€μ private μ κ·Όμ§μμμ λ©€λ²λ€μ μλΈν΄λμ€μμ μ κ·Ό/μ¬μ©μ΄ λΆκ°λ₯ν©λλ€. κ·Έλ κΈ° λλ¬Έμ μνΌν΄λμ€μ private μ κ·Όμ§μμμ λ©€λ²λ€μ μ κ·Όν μ μλ public μ κ·Όμ§μμμ λ©μλλ₯Ό λ§λ€μ΄ μ΄ λ©μλλ₯Ό ν΅ν΄ μ κ·Όν μ μλλ‘ ν©λλ€. (μΊ‘μν)
μμμ μμ
public class Extends {
public static void main(String[] args) {
RacingCar racingCar = new RacingCar();
racingCar.setCarNumber("12λ 7777");
racingCar.setMaxSpeed(300);
System.out.println( "name: " +racingCar.name ); // μνΌν΄λμ€μ nameμ΄ public μ κ·Ό μ§μμμ΄λ―λ‘ λ°λ‘ μ κ·Ό κ°λ₯
System.out.println( "carNumber: " +racingCar.getCarNumber() ); // μνΌν΄λμ€μ carNumberκ° private μ κ·Ό μ§μ¬μμ΄λ―λ‘
//λ°λ‘ μ κ·Ό λΆκ°! public λ©μλλ₯Ό ν΅ν΄ μ κ·Ό
System.out.println( "maxSpeed: " +racingCar.getMaxSpeed() );
}
}
class Car {
//private μ κ·Ό μ§μμμ΄λ―λ‘ μμλ°μ μλΈν΄λμ€μμ μ κ·Ό λΆκ°
private String carNumber;
public String name;
public Car() {
this.carNumber = "";
this.name="λΆλΆμλμ°¨";
System.out.println("μλμ°¨κ° μμ±μλ£");
}
//μλμ getter setterλ₯Ό public μ κ·Ό μ§μμλ‘ λ©μλλ₯Ό λ§λ€μ΄
// private μ κ·Όμ§μμμΈ carNumberμ λν΄ μλΈν΄λμ€μμ public λ©μλλ₯Ό ν΅ν΄ μ κ·Όν μ μλλ‘ ν¨
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
}
class RacingCar extends Car {
private int maxSpeed;
public RacingCar() {
this.maxSpeed = 0;
System.out.println("κ²½μ£Όμ©μ°¨ μμ±μλ£");
}
public int getMaxSpeed() {
return maxSpeed;
}
public void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
}
κ²°κ³Ό
λ
κ°λ¨νκ² Javaμ μμκ³Ό κ·Έμ λ°λ₯Έ
μνΌν΄λμ€ μλΈν΄λμ€μ λν΄
μμ보μμ΅λλ€.
κ°μ¬ν©λλ€. π
Reference
https://enter.tistory.com/108