1λ²μ§Έ κ³Όμ
κ°μ²΄ μ§ν₯μ νΉμ§ 4κ°μ§ κ°λ
1. μΊ‘μν
- λ°μ΄ν°κ° μ ν¨ν κ°μ μ μ§νλλ‘, λλ λΉλ°λ²νΈμ κ°μ λ°μ΄ν°λ₯Ό μΈλΆμμ ν¨λΆλ‘ λ³κ²½νμ§ λͺ»νλλ‘ νκΈ° μν΄μ μΈλΆλ‘λΆν°μ μ κ·Όμ μ ννλ κ²
- ν΄λμ€ λ΄μμλ§ μ¬μ©λλ, λ΄λΆ μμ μ μν΄ μμλ‘ μ¬μ©λλ λ©€λ²λ³μλ λΆλΆμμ μ μ²λ¦¬νκΈ° μν λ©μλ λ±μ λ©€λ²λ€μ ν΄λμ€ λ΄λΆμ κ°μΆλ κ²
- private λ‘ μ§μ νλ©΄, μΈλΆμμ μ κ·Ό λΆκ°ν¨
2. μμ
- κΈ°μ‘΄μ ν΄λμ€λ₯Ό μ¬μ¬μ©νμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλ κ²
- μμμ ν΅ν΄ ν΄λμ€λ₯Ό μμ±νλ©΄ μ μ μμ μ½λλ‘ μλ‘μ΄ ν΄λμ€ μμ± κ°λ₯
- μ½λλ₯Ό 곡ν΅μ μΌλ‘ κ΄λ¦¬ν μ μκΈ° λλ¬Έμ μ½λμ μΆκ° λ° λ³κ²½μ΄ μ©μ΄νλ€
- μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ μ½λμ μ€λ³΅μ μ κ±°νμ¬ νλ‘κ·Έλ¨μ μμ°μ±κ³Ό μ μ§λ³΄μμ ν¬κ² κΈ°μ¬νλ€
- μ‘°μ ν΄λμ€ : μμν΄μ£Όλ ν΄λμ€ / μμ ν΄λμ€ : μμ λ°λ ν΄λμ€ (μλ‘ μμ κ΄κ³)
3. μΆμν
- ν΄λμ€κ°μ 곡ν΅μ μ μ°Ύμλ΄μ 곡ν΅μ μ‘°μμ λ§λλ μμ
- 볡μ‘ν μμ€ν μ΄λ λ°μ΄ν°λ₯Ό λ¨μνκ² λ§λλ κ²
- μΈν°νμ΄μ€μ μΆμλ©μλ, μΆμν΄λμ€λ‘ ꡬνλλ€
4. λ€νμ±
- μ¬λ¬ ννλ‘ λ³ν μ μλ κ²
- ν νμ μ μ°Έμ‘°λ³μλ‘ μ¬λ¬ νμ μ κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μλλ‘ νλ κ²
- μλ‘ λ€λ₯Έ νμ μ μνλ κ°μ²΄λ€μ΄ κ°μ μ΄λ¦μ λ©€λ² ν¨μμ μλ΅νμ¬μ μλ‘ λ€λ₯Έ λμμ 보μ¬μ£Όλ κ²μ΄ κ°λ₯
λ΄κ° μκ°νλ κ°μ₯ μ€μν νΉμ§ : μμ
- μ΄μ : μμμ λ°νμΌλ‘ λ€νμ±μ νλ³νκ³Ό μ½λ μ¬μ¬μ©μ΄ κ°λ₯νκΈ° λλ¬Έμ κ°μ₯ μ€μν νΉμ§μ΄λΌκ³ μκ°νλ€.
#2 μμ μ½λ
public class Car {
int speed;
int gear;
public String color;
private String model;
public void speedUp(int increment) {
speed += increment;
}
}
class SportsCar extends Car { //Carμ μμλ°μ
boolean turbo;
public void setTurbo(boolean newValue) {
turbo = newValue;
}
}
Car κ³Ό SportsCarμ΄ μμ κ°λ€λ©΄,
1. μΊ‘μν
public class Test1 {
public static void main(String[] args) {
Car c = new Car();
c.model = "XC40"; //λ³μ modelμ μ κ·Ό μ μ΄μκ° privateμ΄λ―λ‘ μ κ·Ό λΆκ°
}
}
2. μμ
public class Test2 {
public static void main(String[] args) {
SportsCar c = new SportsCar();
//μμλ°μ Carμ νλμ λ©μλ μ¬μ©
c.color = "Red";
c.speedUp(100);
c.setTurbo(true);
}
}
3. μΆμν
- abstract 리ν΄νμ λ©μλμ΄λ¦();
abstract public class Vehicle {
abstract public void setPrice(int price);
}
public class Car2 extends Vehicle {
private int price;
@Override
public void setPrice(int price) {
this.price = price;
}
}
public class Test3 {
public static void main(String[] args) {
Car2 c2 = new Car2();
c2.setPrice(5000);
}
}
4. λ€νμ±
public class Test4 {
public static void main(String[] args) {
Car c = null;
SportsCar sc = new SportsCar();
SprotsCar sc2 = null;
sc.setTurbo(true);
car = sc;
car.setTurbo(true); // μ΄ κ²½μ°λ νΈμΆ λΆκ°
sc2 = (SportsCar)c;
sc2.setTurbo(true);
}
}