본문 바로가기

728x90
반응형

Java/Java 상속

(5)
상속과 생성자 부모 class 에 생성자가 있는 채로 상속을 받았다면, 그 부모 class 를 상속받는 자식 class도 생성자를 가져와야한다. java에서는 그렇게 강제되어 있다고 하는데여 class Cal{ int v1, v2; Cal(int v1, int v2){ this.v1=v1; this.v2=v2; } } //에러남 class Cal3 extends Cal{ } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(2, 1); Cal3 c3 = new Cal3(); } } 이렇게 부모 class 인 Cal 에 생성자가 있으면 자식 class에 오류가 난다. 오류를 해결해주기 위해서는 자식 class에도 부..
this & super this 는 저번에도 배웠다시피 자기자신, 그것도 instance를 가르킬때 써주는 기능이다. 아 솔직히 설명하라하니까 모르겠다. 다시 보고 와야지 // 내가 마지막 정리로 class가 instance화 되었을때 그 instance를 가르키는게 this라고 적었다. 그냥 이렇게 외우는게 빠를듯 여튼 super는 자기 자신이 아니라 상속받고 있는 부모를 가르키는 기능이다. 그래서 이런 식으로 써줄 수 있다. class Cal{ public int sum(int v1, int v2) { return v1+v2; } //Overloading public int sum(int v1, int v2, int v3) { // this 는 자기자신, 그것도 instance를 가르키는 것. return this.sum(..
Overriding vs Overloading 하필 또 이름이 비슷해서 헷갈리게 하는 기능이 있단다. Overriding과 Overloading이 있는데 후자는 상속과 아무런 관련이 없다는데요? 흠.. 그래도 무슨말인지 보아하니.. java에서는 같은 이름의 method도 기능만 다르면 사용가능하다. 그래서 아래처럼 class Cal{ public int sum(int v1, int v2) { return v1+v2; } // 아래 method는 위의 sum과 이름이 같지만 정수 3개를 더해주는 다른 기능을 쓴다 // 이걸 Overloading이라고 부른다. public int sum(int v1, int v2, int v3) { return v1+v2+v3; } } class Cal3 extends Cal{ public int minus(int v..
Overriding 아까 쓴 코드는 그냥 Cal 의 기능을 연장해왔을 뿐 더해준 기능이 없다. 활용을 위해서는 연장을 해줘야한다 class Cal{ public int sum(int v1, int v2) { return v1+v2; } } class Cal3 extends Cal{ public int minus(int v1, int v2) { return v1-v2; } } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(); System.out.println(c.sum(2, 1)); Cal3 c3 = new Cal3(); System.out.println(c3.minus(3, 10)); } } 이걸 보면 Cal3 에..
Java에서 상속 객체 지향에서 method, class, instance에 대한 개념을 이해했다면 다음에 들을 수업이 이 상속 수업이다. 사실 멀 얼만큼이나 이해했는지는 모르겠지만 일단 국비교육전에 들을 수 있는 것들을 전부 듣고 시작할 예정이다. 먼저 간단한 계산기 프로그램을 아래와 같이 만든다. class Cal{ public int sum(int v1, int v2) { return v1+v2; } } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(); System.out.println(c.sum(2, 1)); } } 써놓고 보니 진짜 간단한데 과연 이걸 내가 아무것도 안보고 혼자서 쓸 수 있을까? 라는 의..

728x90
반응형