μ΄ κΈμ μνμ½λ©μ 'Java' κ°μ’λ₯Ό λ°νμΌλ‘ μ 리ν λ΄μ©μ λλ€.
μμμ΄λ?
κ°μ²΄ μ§ν₯μμ κ°μ₯ μ€μν λͺ©ν μ€ νλλ λ°λ‘ μ¬νμ©μ±μ λλ€. μμμ κ°μ²΄μ§ν₯μ μ¬νμ©μ±μ κ·Ήλνμν¨ νλ‘κ·Έλλ° κΈ°λ²μ΄λΌκ³ ν μ μμ΅λλ€. λμμ κ°μ²΄ μ§ν₯μ 볡μ‘νκ² νλ μ£Όμ μμΈμ΄λΌκ³ λ ν μ μμ΅λλ€.
μμ(Inheritance)μ΄λ λ¬Όλ €μ€λ€λ μλ―Έμ λλ€. μ΄λ€ κ°μ²΄κ° μμ λ κ·Έ κ°μ²΄μ νλ(λ³μ)μ λ©μλλ₯Ό λ€λ₯Έ κ°μ²΄κ° λ¬Όλ €λ°μ μ μλ κΈ°λ₯μ μμμ΄λΌκ³ ν©λλ€.
package org.opentutorials.javatutorials.object;
class Calculator{
int left, right;
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left+this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public class CalculatorDemo4 {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
Calculator c2 = new Calculator();
c2.setOprands(20, 40);
c2.sum();
c2.avg();
}
}
μ΄ μμ μμ κ°μ²΄ Calculatorλ sumκ³Ό avg λ©μλλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ κ°μ²΄κ° κ°μ§κ³ μλ κΈ°λ₯μ λΉΌκΈ°λ₯Ό μΆκ°νκ³ μΆμ κ²½μ°μλ μ΄λ»κ² ν΄μΌ ν κΉμ? κ°μ₯ μ¬μ΄ λ°©λ²μ μ΄ κ°μ²΄μ λΉΌκΈ°(substract)λ₯Ό μΆκ°νλ κ²μ λλ€. νμ§λ§ μλμ κ°μ κ²½μ°λΌλ©΄, κ°μ²΄μ λ©μλλ₯Ό μΆκ°νλ κ²μ΄ μ΄λ €μΈ κ²μ λλ€.
1. κ°μ²΄λ₯Ό μμ μ΄ λ§λ€μ§ μμμ κ²½μ°
2. κ°μ²΄κ° λ€μν κ³³μμ νμ©λκ³ μμ κ²½μ° / λ©μλλ₯Ό μΆκ°νλ©΄ λ€λ₯Έ κ³³μμ λΆνμν κΈ°λ₯μ΄ ν¬ν¨λ μ μμ΅λλ€.
κ·Έλ λ€λ©΄ κΈ°μ‘΄μ κ°μ²΄λ₯Ό κ·Έλλ‘ μ μ§νλ©΄μ κΈ°λ₯μ μΆκ°νλ λ°©λ²μ μμκΉμ? λ°λ‘ μ΄λ° λ§₯λ½μμ λ±μ₯ν κ²μ΄ μμμ λλ€. κΈ°μ‘΄μ κ°μ²΄λ₯Ό μμ νμ§ μκ³ λ, μλ‘μ΄ κ°μ²΄κ° κΈ°μ‘΄μ κ°μ²΄λ₯Ό κΈ°λ°μΌλ‘ λ§λλ κ²μ λλ€. μ΄λ κΈ°μ‘΄ κ°μ²΄λ κΈ°λ₯μ λ¬Όλ €μ€λ€λ μλ―Έμμ λΆλͺ¨κ° λκ³ , μλ‘μ΄ κ°μ²΄λ κΈ°λ₯μ λ¬Όλ €λ°λλ€λ μλ―Έμμ μμ κ°μ²΄κ° λ©λλ€.
λΆλͺ¨ ν΄λμ€μ μμ ν΄λμ€μ κ΄κ³λ₯Ό μμ(super) ν΄λμ€μ νμ(sub) ν΄λμ€λΌκ³ νννκΈ°λ ν©λλ€.
package org.opentutorials.javatutorials.Inheritance.example1;
class Calculator {
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right) / 2);
}
}
class SubstractionableCalculator extends Calculator {
public void substract() {
System.out.println(this.left - this.right);
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
SubstractionableCalculator c1 = new SubstractionableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
}
}
// output
// 30
// 15
// -10
extends Calculatorλ ν΄λμ€ Calculatorλ₯Ό μμ λ°λλ€λ μλ―Έλ€. λ°λΌμ SubstaractableCalculatorλ Calculatorμμ μ μν λ©μλ setOprands, sub, avgλ₯Ό μ¬μ©ν μ μκ² λ©λλ€. μμμ ν΅ν΄μ μ½λμ μ€λ³΅μ μ κ±°ν μ μκ³ , λΆλͺ¨ ν΄λμ€λ₯Ό κ°μ νλ©΄ μ΄λ₯Ό μμλ°κ³ μλ λͺ¨λ μμ ν΄λμ€λ€μκ² κ·Έ ννμ΄ μλμΌλ‘ λμκ°λλ€. μ¦ μ μ§λ³΄μκ° νΈλ¦¬ν΄μ§λλ€.
Calculatorμ μμ λ°λ ν΄λμ€λ₯Ό νλ λ λ§λ€μ΄λ΄ μλ€.
package org.opentutorials.javatutorials.Inheritance.example1;
class MultiplicationableCalculator extends Calculator {
public void multiplication() {
System.out.println(this.left * this.right);
}
}
public class CalculatorDemo2 {
public static void main(String[] args) {
MultiplicationableCalculator c1 = new MultiplicationableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.multiplication();
}
}
// outout
// 30
// 15
// 200
μμν ν΄λμ€λ₯Ό λ€μ μμν μλ μμ΅λλ€. μλμ μμ λ κ³±νκΈ°κ° κ°λ₯ν ν΄λμ€μΈ MultiplicationableCalculatorμ μμλ°κ³ μμ΅λλ€.
package org.opentutorials.javatutorials.Inheritance.example1;
class DivisionableCalculator extends MultiplicationableCalculator {
public void division() {
System.out.println(this.left / this.right);
}
}
public class CalculatorDemo3 {
public static void main(String[] args) {
DivisionableCalculator c1 = new DivisionableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.multiplication();
c1.division();
}
}
μμμ μ₯μ μ΄ μμΌλ©΄μλ λ¨μ λ μμ΅λλ€. λ¨μ μ 볡μ‘λμ μ¦κ°λΌκ³ λ§ν μ μμ΅λλ€. κ°μ²΄ μ§ν₯μ λκ°μ μμ¦μΌλ‘ λλλ€λ©΄ ν΄λμ€μ μΈμ€ν΄μ€μ λν μ΄ν΄κ° μμ¦ 1 / μμμ μμ¦2λΌκ³ ν μ μμ΅λλ€. κ·Έλ§νΌ μ€μν κ°λ μ λλ€.
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] overloading μ΄λ? μ€λ²λ‘λ© λ» (0) | 2022.11.01 |
---|---|
[Java] overriding μ€λ²λΌμ΄λ©μ΄λ? (0) | 2022.10.25 |
[Java] μμκ³Ό μμ±μ (0) | 2022.10.25 |
[Java] μ΄κΈ°νμ μμ±μ (0) | 2022.10.24 |