μμ
μμμ΄λ
κΈ°μ‘΄μ ν΄λμ€λ₯Ό μ¬μ¬μ©νμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλ κ²μ΄λ€.
βμ μ¨β
μ μ μμ μ½λλ‘ μλ‘μ΄ ν΄λμ€ μμ± κ°λ₯
μ½λλ₯Ό 곡ν΅μ μΌλ‘ κ΄λ¦¬ν μ μμ β μ½λμ μΆκ° λ° λ³κ²½μ΄ λ§€μ° μ©μ΄
class Parent {
int age;
}
class Child extends Parent {
void play() {
System.out.println("λμ~");
}
}
μμ ν΄λμ€λ μ‘°μ ν΄λμ€μ λͺ¨λ λ©€λ²λ₯Ό μμ λ°μΌλ―λ‘ νμ μ‘°μ ν΄λμ€λ³΄λ€ κ°κ±°λ λ§μ λ©€λ²λ₯Ό κ°λλ€.
μμλ°λλ€ = μ‘°μν΄λμ€λ₯Ό νμ₯νλ€
λΌλ μλ―Έλ‘ ν΄μν μ μμ΄μ ν€μλκ° extends
μΈ κ²λ μλ€.
class Parent {
int age;
}
class Child1 extends Parent {
void play() {
System.out.println("λμ~");
}
}
class Child2 extends Parent {
void eat() {
System.out.println("λ‘λ³Άν¬ λ¨ΉμΌλ¬ κ°μ~");
}
}
Child1, Child2 λ λ€ Parentν΄λμ€λ₯Ό μμλ°κ³ μμ§λ§,
ν΄λμ€ Child1κ³Ό Child2 κ°μλ μλ‘ μλ¬΄λ° κ΄κ³λ μ±λ¦½λμ§ μλλ€. (λ 립)
ν¬ν¨κ΄κ³
ν ν΄λμ€μ λ©€λ²λ³μλ‘ λ€λ₯Έ ν΄λμ€ νμ μ μ°Έμ‘°λ³μλ₯Ό μ μΈνλ κ²μ λ§νλ€.
class Circle {
int x;
int y;
int r;
}
class Point {
int x;
int y;
}
class Circle {
Point c = new Point();
int r;
}
λλ²μ§Έ μ½λλ₯Ό ν¬ν¨κ΄κ³λΌκ³ νλ€.
βν¬ν¨κ΄κ³λ₯Ό μΈμ§ VS μμμ μΈμ§β
~μ ~μ΄λ€(is-a)
μ ~μ ~μ κ°μ§κ³ μλ€(has-a)
λ₯Ό λ£μ΄μ λ¬Έμ₯μ λ§λ€μ΄ 보면 λλ€.
μμ μμ μ μ΄λ€. - Circle is a Point.
ν¬ν¨ μμ μ μ κ°μ§κ³ μλ€. - Circle has a Point.
μ΄ κ²½μ°μλ λ λ²μ§Έ λ¬Έμ₯μ΄ λ μ³λ€.
κ·Έλμ μμλ³΄λ¨ ν¬ν¨κ΄κ³λ‘ μ°λ κ²μ΄ μ’λ€.
μλ₯Ό λ€μ΄ μμ λνμ΄κ³ (is) μμ μ μ κ°μ§κ³ (has) μλ€.
class Shape {
String color = "black";
}
class Circle extends Shape {
}
class Circle extends Shape {
Point center;
int r;
}
λ¨μΌ μμ(single inheritance)
C++μμλ λ€μ€ μμμ νμ©νμ§λ§ μλ°μμλ μ€μ§ λ¨μΌ μμλ§μ νμ©νλ€.
class TVCR extends TV, VCR { // μλ¬. μ‘°μμ νλλ§ νμ©λλ€.
// ...
}
λ€μ€ μμμ μ₯μ
μ¬λ¬ ν΄λμ€λ‘λΆν° μμλ°μ μ μκΈ° λλ¬Έμ 볡ν©μ μΈ κΈ°λ₯μ κ°μ§ ν΄λμ€λ₯Ό μ½κ² μμ±ν μ μλ€.
λ€μ€ μμμ λ¨μ
ν΄λμ€κ°μ κ΄κ³κ° λ§€μ° λ³΅μ‘ν΄μ§
μλ‘ λ€λ₯Έ ν΄λμ€λ‘λΆν° μμλ°μ λ©€λ²κ°μ μ΄λ¦μ΄ κ°μ κ²½μ° κ΅¬λ³ν μ μλ λ°©λ²μ΄ μλ€.
(μ : TVν΄λμ€μλ power() λ©μλκ°, VCR ν΄λμ€μλ power()λΌλ λ©μλκ° μμ λ μμμ TVCRν΄λμ€λ μ΄λ μ‘°μν΄λμ€μ power()λ₯Ό μμλ°κ² λλ κ²μΌκΉ? λλ€ν΄λ μ΄λ»κ² ꡬλ³ν κ²μΈκ°?)
μμ λ¨μ μΌλ‘ μΈνμ¬ μλ°μμλ λ¨μΌμμλ§μ νμ©νλ€.
Objectν΄λμ€ - λͺ¨λ ν΄λμ€μ μ‘°μ
Object ν΄λμ€λ λͺ¨λ ν΄λμ€ μμκ³μΈ΅λμ μ΅μμμ μλ μ‘°μν΄λμ€μ΄λ€.
class Tv {
...
}
class Tv extends Object {
...
}
μ»΄νμΌμ νλ©΄ μ»΄νμΌλ¬κ° μλμΌλ‘ μ΅μμ μ‘°μμΈ Object ν΄λμ€λ₯Ό μΆκ°ν΄ μ€λ€.
toString()μ΄λ equalsμ κ°μ λ©μλλ₯Ό λ°λ‘ μ μνμ§ μκ³ λ μ¬μ©ν μ μμλ μ΄μ λ μ΄ λ©μλλ€μ΄ Object ν΄λμ€μ μ μλ κ²λ€μ΄κΈ° λλ¬Έμ΄λ€.
'πΉπππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] ν΄λμ€μ κ°μ²΄ (0) | 2024.04.14 |
---|---|
[Java] κ°μ²΄ μ§ν₯ μΈμ΄μ μμ¬ & νΉμ§ (0) | 2024.04.13 |
μ μμ λΆνλ μμν¬ κ³΅ν΅ μ»΄ν¬λνΈ μ€μ νκΈ° (1) | 2024.02.06 |
[Java] μλ° νμΌ CMD(컀맨λμ°½)μμ μ»΄νμΌ ν μ€ννλ λ°©λ² / νκΈ μλ¬ (1) | 2023.11.24 |
[JAVA] src μ bin μ°¨μ΄μ (0) | 2023.11.23 |