Java 상속

기능의 개선과 발전

 수업소개

상속 받은 클래스에 기능을 추가하고 수정하는 방법을 살펴봅니다 

 

 

강의

 

 

 

소스코드

https://github.com/egoing/java-inheritance/blob/master/src/InheritanceApp.java

class Cal{
    int v1,v2;
    Cal(int v1, int v2){
        System.out.println("Cal init!!");
        this.v1 = v1; this.v2 = v2;
    }
    public int sum(){return this.v1+v2;}
}
class Cal3 extends Cal{
    Cal3(int v1, int v2) {
        super(v1, v2);
        System.out.println("Cal3 init!!");
    }
    public int minus(){return this.v1-v2;}
}
public class InheritanceApp {
    public static void main(String[] args) {
        Cal c = new Cal(2,1);
        Cal3 c3 = new Cal3(2, 1);
        System.out.println(c3.sum()); // 3
        System.out.println(c3.minus()); // 1
    }
}

 

댓글

댓글 본문
  1. 초딩 개발자
    2021/07/18
  2. jeisyoon
    2021.05.03 기능의 개선과 발전 - OK
  3. Overriding
  4. 레이
    2021.04.18
  5. 20201213
  6. 자바가 무섭지 않은 예솔
    감사합니다!!
  7. 안광민
    overriding = 부모가 가진 기능을 재정의하는 것

    완료
  8. 싱와
    ------상속이 왜 필요한가?

    1억개의 코드가 있는 클래스에서 특정한 기능을 추가해야 하거나, 수정해야 하는 경우,
    일일히 찾아서 들어가기도 힘들고, 해당 클래스가 적용된 부분은 또 다 수정해야하는 경우..
    (지금까지 배워온 객체지향의 문제점에서 조금 더 확장 된 개념이라고 생각하면 이해가 쉬울 듯 하다.
    대부분의 객체지향에서의 문제점 발생은 수많은 코드에서 중간중간에 수정과 배포를 조금 더 편리하게 하기 위하여
    새로운 기술들이 발전했음을 알 수 있다.) 그래서 상속이라는 개념이 등장했다.

    ------상속의 구문 형태

    Class a extends b {} 의 구문 형태를 취한다.

    ------상속, 그리고 Override

    이전에는 Cal 클래스에서 Cal3 클래스로 단순히 확장의 개념이었다면
    이제는 Cal3 에서 이것 저것 해볼 수 있는 기회가 생겼다.
    단순히 확장의 개념을 넘어서, 기존의 클래스를 확장된, 상속받은 클래스에서 재정의 할 수 있는 기회도 부여 받게 된다.

    이런것을 OVERRIDE, 한마디로 올라 탔다는 건데,
    자식 클래스가 부모클래스에 등짝에 올라탔다는 것이다.
    그래서 자식 클래스에서 extends 를 이용해 확장(상속)된 것을 토대로 재정의 하는것을 override 라고 한다.
  9. 콜라
    감사합니다
  10. hyuna lee
    감사합니다. 오버라이딩은 상속받은것에 추가된 것이라고 할 수 있을까요.
  11. 빽토리얼
    상속(Interitance): 부모 클래스의 메소드 및 필드를 가져옴으로써 코드 중복을 줄일 수 있는 장점
    오버라이딩: 부모 클래스에 있었던 메소드를 자식 클래스에서 재정의(덮어쓰기)하면서 코드 변경 가능
  12. 넘무
    강의 감사합니다
  13. thebluerat
    2020년 6월 24일 수요일
    재정의하는 것(Overriding): 상속이 존재하는 근본적인 원인 중 하나
graphittie 자세히 보기