업스케일링과 가상 메서드
3챕터 :
3챕터의 도입부에 대한 궁금증을 해결하기 위해 다른 강의를 참고 하고 있습니다. : )
[ 자바 입문 편 : 형변환과 가상 메소드 강의부분] 강의
오픈 튜토리얼 : https://opentutorials.org/course/1223/5400
프로그래머스 :https://programmers.co.kr/learn/courses/5/lessons/193#
형변환 1. 부모 타입으로 업스케일 : 인스턴스 생성자 B()는 B{B()}인 걸까?
package TEST;
public class Do {
public static void main(String[] args) {
A a = new B();
//B의 인스턴스를 생성해서 A에 담는다.
//B의 생성자"class B{B(){}}"까지 실행된후. a에 값을 담는다.
a.method_A();
//A의 메서드는 a가 A타입이기 때문에 사용 가능하다.
// a.method_B();
//B의 메소드는 A타입에는 없기 떄문에 사용할수 없다.
a.method_AB();
//A의 메서드만 사용할수 있지만 B에 같은 이름의 메서드가 있다면 B의 메소드가 호출된다.
System.out.println(a.alpabet);
//B로 생성된 인스턴스 이기 때문에. a의 alpabat에는 B가 들어있다.
}
}
package TEST;
public class A {
String alpabet;
A(){
this.alpabet = "A";
}
public void method_A() {
System.out.println("A_method");
}
public void method_AB() {
System.out.println("A의 method_AB호출");
}
}
package TEST;
public class B extends A{
B(){
this.alpabet= "B";
}
public void method_B() {
System.out.println("B");
}
public void method_AB() {
System.out.println("B의 method_AB호출");
}
}
main 내부에서 main이 포함된 클레스의 메소드를 사용 할때.
자신의 인스턴스를 만드는 타이밍이 가장 앞에 있어도 되는지 확인.(인터프린터와 컴파일 언어의 차이점이라고 배운듯)
형변환을 할때
메소드의 매게변수를 상위 타입으로 받고. 하위 타입의 것으로 인수를 보내도 자동으로 형변환이 된다. 그렇게 자동으로 오버라이딩 되도록 해보자.
package TEST;
public class Do {
public static void main(String[] args) {
Do dox = new Do();
A a = new A();
B b = new B();
C c = new C();
dox.print(a);
dox.print(b);
dox.print(c);
}
void print(A a) {
a.print();
}
}
package TEST;
public class C extends A {
void print() {
System.out.println("C");
}
}
package TEST;
public class B extends A {
void print() {
System.out.println("B");
}
}
package TEST;
public class A {
void print() {
System.out.println("A");
}
}
전문 용어
에러 메세지
학습 시간
캠 스터디
공부 모임
1) 카카오톡 오픈 채팅방
- 모르는것을 질문하거나
- 이해가 가지 않는 부분을 다른 분들의 블로그에서 참고하기 용도
2) 구루미 온라인 독서실
- 학습 시간을 관리 하거나 경쟁 하는 용도
온라인 강의 주소
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'학습방법 > 데일리 미션' 카테고리의 다른 글
[ 패스트캠퍼스 챌린지 15일차 ] 3:1:01 ~ 3:1:13 (0) | 2022.02.07 |
---|---|
[ 패스트캠퍼스 챌린지 14일차 ] 3:1:01 ~ 3:1:13 (0) | 2022.02.06 |
[ 패스트캠퍼스 챌린지 12일차 ] 3:1:01 ~ 3:1:13 (0) | 2022.02.04 |
[ 패스트캠퍼스 챌린지 11일차 ] 3:1:01 ~ 3:1:13 (0) | 2022.02.03 |
[ 패스트캠퍼스 챌린지 10일차 ] 3:1:01 ~ 3:1:13 (0) | 2022.02.02 |