10일차 - 눈이 많이 온 날. 10시에 나와버렸다.
버스를 일찍타야했는ㄷ ㅔㅠㅠ...
Inheritance. (상속)
자신이 가진 모든 자료, Method를 물려주는 것.
두 개 이상의 Class가 존재 해야 한다.
상속의 표현
extends 라는 키워드에 의해 구현된다.
자료의 상속
선조에서 선언 된 공간이 그~대로 상속되어 실제 메모리를 차지하게 된다.
Method 의 상속
코드를 공유하는 형태로 이루어진다. 따라서 메소드 호출은 선조의 코드를 빌려서 사용한다.
* 그렇다면 메모리 상에는 ?
ex) Taxi 가 Car를 extends 를 하고, TaxiTest에서 Taxi를 생성자 호출하여 사용한다면
TaxiTest.class
Taxi taxi = new Taxi();
일때 taxi 는 Taxi를 검사하고 난 뒤에 Car 까지 간다.
생성자에 this 는 같은 클래스의 다른인자값을 가진 생성자호출
super는 부모의 ! 다른 인자값을 가진 생성자 호출
다중 상속
또 다른 예를 보자
Overriding.( 재 정의)
자료의 재정의(Overriding)
상속에 의해 받은 자료나 메소드를 사용치 않고 자신이 새로이 만들어 사용하는 방법.
왜냐? 똑같은 메소드가 있을 경우 자신의 메소드를 우선 시 하기 위해서!!
오히려 프로그램의 가독성을 떨어뜨리는 결과를 발생하기 쉬워 지양해야 할 사항이다.
메소드의 재정의(Overriding)
실제로 코드 공간이 후손에게 전달되는 것이 아니라 하나의 코드를 선조와 후손 클래스가 공유하는 형태로 동작하게 된다.
메소드의 overriding은 후손 클래스에서 동일한 이름을 가지는 메소드를 재정의하여 사용하는 것으로 선조의 메소드를 빌려 쓰지 않고 자신의 메소드를 사용하게 된다.
오버로딩 vs 오버라이딩
오버라이딩(overriding)은 메소드를 구성하고 있는 형태가 동일해야 한다.
오버로딩은 메소드의 이름은 같지만 인자의 리스트가 달라서 구분이 가능해야만 한다
오버라이딩은 메소드의 이름 뿐만아니라 인자의 리스트도 완전히 똑같아야 한다
오버로딩은 한 클래스의 내부에서 생각하는 것
오버라이딩은 상속 관계가 맺어진 두 클래스를 생각.
Protected.
상속관계가 있을 경우와 같은 패키지 내에서만 의미를 지닌다.
퀴즈 2015 12 03
완벽하지 못함 ㅠㅠ
효진씨가 휴게소에 가서 자판기에서 뭘 뽑아마신다는 내용의 코딩인데
자판기의
public void Coin(){
while(true){
hyo.InsertCoin();
sum = sum + hyo.insertCoin;
if (sum < 200)
System.out.println("그지새기새오..? 더 넣으세오..");
if( sum >= 200 ) {
break;
}
System.out.println("총 "+sum+" 원 넣으셨습니다.");
} //end while
}
이부분에서 막힌다.
200원을 값으로 넣어주고 싶은데.... 머리가 더이상 졸려워서 말을 듣질않는다..
그리고 메뉴 선택도 좀 더 유연하게 하고싶은데... 어떻게 안되려나 .. 흠냐
Hyojin.class
'개발 > JAVA' 카테고리의 다른 글
12일차 예외처리와 awt (0) | 2015.12.08 |
---|---|
11일차 묵시적 형변환과 다형성 (0) | 2015.12.04 |
9일차. 와퍼(Wrapper)와 각종 배열. (0) | 2015.12.02 |
8일차 명시적 선언 궁금! (0) | 2015.12.01 |
8일차 객체구현, 패키지 (0) | 2015.12.01 |
댓글