π μμ
: λ€λ₯Έ ν΄λμ€κ° κ°μ§κ³ μλ λ©€λ²(νλ, λ©μλ)λ€μ μλ‘ μμ±ν ν΄λμ€μμ μ§μ λ§λ€μ§ μκ³ μμμ λ°μμΌλ‘μ¨ μ ν΄λμ€κ° μμ μ λ©€λ²μ²λΌ μ¬μ©ν μ μλ κΈ°λ₯
πμμμ λͺ©μ
: ν΄λμ€μ μ¬μ¬μ©, μ°κ΄λ μΌλ ¨μ ν΄λμ€λ€μ λν 곡ν΅μ μΈ κ·μ½ μ μ
π μμμ μ₯μ
1. λ³΄λ€ μ μ μμ μ½λλ‘ μλ‘μ΄ ν΄λμ€ μμ± κ°λ₯
2. μ½λλ₯Ό 곡ν΅μ μΌλ‘ κ΄λ¦¬νκΈ° λλ¬Έμ μ½λμ μΆκ° λ° λ³κ²½ μ©μ΄
3. μ½λμ μ€λ³΅μ μ κ±°νμ¬ νλ‘κ·Έλ¨μ μμ°μ±κ³Ό μ μ§λ³΄μμ ν¬κ² κΈ°μ¬
π μμμ νΉμ§
βΌ λͺ¨λ ν΄λμ€λ Object ν΄λμ€μ νμμ΄λ€.
: Object ν΄λμ€κ° μ 곡νλ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ λ©μλ μ¬κ΅¬ν κ°λ₯
ex) java.lang.String ν΄λμ€μ equals()μ toString()
βΌ λΆλͺ¨ν΄λμ€μ μμ±μ, μ΄κΈ°ν λΈλ‘μ μμ μ λ¨
: μμ ν΄λμ€ μμ± μ, λΆλͺ¨ ν΄λμ€ μμ±μκ° λ¨Όμ μ€ν
: μμ ν΄λμ€ μμ±μ μμμ λΆλͺ¨ ν΄λμ€ μμ±μ νΈμΆμ λͺ μνκ³ μΆμΌλ©΄ super() νμ©
βΌ λΆλͺ¨μ privateλ©€λ²λ μμμ λμ§λ§ μ§μ μ κ·Ό λΆκ°
: μμ κ°μ²΄ μμ± μμ λΆλͺ¨μ νλ κ°λ μ λ¬ λ°μ κ²½μ°, μμ μμ±μ μμμ λΆλͺ¨μ private νλμ μ§μ μ κ·Όνμ¬ λμ λΆκ°
:super() μ΄μ©νμ¬ μ λ¬λ°μ λΆλͺ¨ νλκ°μ λΆλͺ¨ μμ±μ μͺ½μΌλ‘ λ겨μ μμ±νκ±°λ setter, getterλ©μλλ₯Ό μ΄μ©νμ¬ μ κ·Ό
π‘ ν΄λμ€ κ°μ μμ μμλ extends ν€μλ μ¬μ©
π» [μ κ·Όμ νμ] class ν΄λμ€λͺ extends ν΄λμ€λͺ { }
π» public class Academy extends Company { }
π« μ€μ΅
package com.kh.p1.inherit.parent.model.vo;
public class Person {
protected String name; //μ΄λ¦
protected int age; //λμ΄
protected char gender; //μ±λ³
protected String addr; //μ£Όμ
public Person() {
}
public Person(String name, int age, char gender, String addr) {
this.name = name;
this.age = age;
this.gender = gender;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
}
package com.kh.p1.inherit.child.model.vo;
import com.kh.p1.inherit.parent.model.vo.Person;
public class Employee extends Person {
private int salary;//μκΈ
private String dept;//λΆμ
public Employee() {
}
public Employee(int salary, String dept) {
super();
this.salary = salary;
this.dept = dept;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
}
package com.kh.p1.inherit.child.model.vo;
import com.kh.p1.inherit.parent.model.vo.Person;
public class Student extends Person{
private int grade;//νλ
private String major;//μ 곡
public Student() {
}
public Student(int grade, String major) {
this.grade = grade;
this.major = major;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
package com.kh.p1.inherit.run;
import com.kh.p1.inherit.child.model.vo.Employee;
public class Run {
public static void main(String[] args) {
Employee emp = new Employee();
emp.setName("κΉμ¨");
emp.setAge(17);
emp.setSalary(2000);
System.out.println(emp.getName());
System.out.println(emp.getAge());
System.out.println(emp.getSalary());
}
}
/*
κΉμ¨
17
2000
*/
π super()μ super.
πΉ super()
: λΆλͺ¨ κ°μ²΄μ μμ±μλ₯Ό νΈμΆνλ λ©μλλ‘ κΈ°λ³Έμ μΌλ‘ νμ μμ±μμ λΆλͺ¨ μμ±μ ν¬ν¨
: νμ κ°μ²΄ μμ± μμλ λΆλͺ¨λΆν° μμ±λκΈ° λλ¬Έμ νμ ν΄λμ€ μμ±μ μμλ λΆλͺ¨ μμ±μλ₯Ό νΈμΆνλ super()κ° μ²« μ€μ μ‘΄μ¬(λΆλͺ¨ μμ±μκ° κ°μ₯ λ¨Όμ μ€νλμ΄μΌ νκΈ° λλ¬Έμ λͺ μμ μΌλ‘ μμ± μμλ λ°λμ 첫 μ€μλ§ μμ±)
: λ§€κ°λ³μκ° μλ λΆλͺ¨ μμ±μ νΈμΆμ super(λ§€κ°λ³μ, λ§€κ°λ³μ)λ₯Ό λ£μΌλ©΄ λ¨
πΉ super.
: μμμ ν΅ν μμ ν΄λμ€ μ μ μ ν΄λΉ μμ ν΄λμ€μ λΆλͺ¨ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μ°Έμ‘°λ³μ
: μμ ν΄λμ€ λ΄μμ λΆλͺ¨ ν΄λμ€ κ°μ²΄μ μ κ·Όνμ¬ νλλ λ©μλ νΈμΆ μ μ¬μ©
π Is a VS Has a
πΉ Is a (μμκ΄κ³)
: "μμ ν΄λμ€λ (νλμ) λΆλͺ¨ ν΄λμ€μ΄λ€." κ΄κ³λ‘, λΆλͺ¨ ν΄λμ€λ₯Ό μμ ν΄λμ€κ° μμνλ€.
ex) Circle is a Shape.
πΉ Has a (ν¬ν¨κ΄κ³)
: ν ν΄λμ€μ λ©€λ²λ³μλ‘ λ€λ₯Έ ν΄λμ€ νμ μ μ°Έμ‘°λ³μλ₯Ό μ μΈν¨
ex) Circle has a point.
'Dev > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[κ°μ²΄(10)] μ€λ²λΌμ΄λ©(Overriding), μ€λ²λ‘λ©(Overloading) (0) | 2022.05.15 |
---|---|
[κ°μ²΄(9)] μ€μ΅1, μ€μ΅2 (0) | 2022.05.15 |
[κ°μ²΄(7)] κ°μ²΄ λ°°μ΄ (0) | 2022.05.10 |
[κ°μ²΄(6)] λ©μλ(Method) (0) | 2022.05.10 |
[κ°μ²΄(5)] μμ±μ(Constructor) (0) | 2022.05.10 |