728x90
상속을 배우기 위해 계산기 클래스가 필요
class Cal {
public int sum(int v1, int v2) {
return v1+v2;
}
}
public class Inheritance01 {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2,1));
}
}
추가로 마이너스 기능을 넣고 싶다면?
일 잘하는 사람은 sum()메소드를 복사해서 새 클래스를 생성
class Cal1 {
public int sum(int v1, int v2) {
return v1+v2;
}
}
class Cal2 {
public int sum(int v1, int v2) {
return v1+v2;
}
public int minus(int v1, int v2) {
return v1-v2;
}
}
public class Inheritance01 {
public static void main(String[] args) {
Cal1 c = new Cal1();
System.out.println(c.sum(2,1));
}
}
오리지널인 클래스 Cal1의 버그나 업데이트 했다고하면 오리지널과 같은 기능을 가지고 있는 Cal2 및 다른 여러 클래스들은 똑같이 반영이 안되기 때문에 일일히 수많은 코드를 수정해야한다
또한 같은 내용의 코드도 굉장히 많아질 것
코드가 1억줄이라면 각기 다른 클래스의 같은 내용의 메소드를 쉽게 알아보기가 매우 어려울 것
-이때 우리가 유용하게 쓸 수 있는 것이 상속(Inheritance)
상속(Inheritance)이란?
어떤 클래스가 가지고 있는 변수와 메소드를 확장해서 상속해서 다른 클래스가 갖도록 하는 것
상속의 장점
- 코드의 재사용성up
- 유지보수 편의성 up
- 가독성 up
- 코드의 양 down
부모클래스(=superClass)
자식클래스(=subClass)
전체코드
// Java 상속 - 1. 수업소개 : 상속의 정의 & 장점
class Cal1 {
public int sum(int v1, int v2) {
return v1+v2;
}
}
class Cal3 extends Cal1{ // extends : Cal1을 상속
}
public class Inheritance01 {
public static void main(String[] args) {
Cal1 c1 = new Cal1();
System.out.println(c1.sum(2,1));
Cal3 c3 = new Cal3();
System.out.println(c3.sum(2,1));
}
class Cal2 {
public int sum(int v1, int v2) {
return v1+v2;
}
public int minus(int v1, int v2) {
return v1-v2;
}
}
}
728x90
반응형
'JAVA > 생활코딩 JAVA 상속' 카테고리의 다른 글
Java 상속(Inheritance) - 6. 수업을 마치며 : 다형성(Polymorphism), 접근제어자, Final, Abstract (0) | 2022.02.06 |
---|---|
Java 상속(Inheritance) - 5. 상속과 생성자 (0) | 2022.02.06 |
Java 상속(Inheritance) - 4. this & super (0) | 2022.02.06 |
Java 상속(Inheritance) - 3. Overriding vs Overloading (0) | 2022.02.06 |
Java 상속(Inheritance) - 2. 기능의 개선과 발전 : 자식클래의 기능 추가 & 수정 (0) | 2022.02.06 |