일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- angular2
- 전자정부
- 로또
- Validations
- IBatis procedure
- 이클립스
- 자바
- Login with OAuth Authentication
- Full text
- while
- 가변인자
- 업캐스팅
- 형변환
- 야구게임
- 전체텍스트
- full text indexing
- 스프링
- Random
- 자바 야구게임
- 전체
- 다형성
- 추상클래스
- 페이징
- 다운캐스팅
- jquery
- 25가지 효율적인 sql작성법
- 단축키
- 상속예제
- 상속
Archives
- Today
- Total
nalaolla
다형성, 형변환, 다운캐스팅, 업캐스팅 본문
728x90
반응형
- package test.com;
- public class Test02AAA {
- int a = 111;
- String a2 = "AAA";
- public Test02AAA() {
- System.out.println("Test02AAA()...");
- }
- public void aaa() {
- System.out.println("aaa()...");
- }
- }
- package test.com;
- public /*final*/ class Test02BBB extends Test02AAA {
- int b = 222;
- String b2 = "bbb";
- public Test02BBB() {
- System.out.println("Test02BBB()...");
- this.a = 777;
- }
- public void bbb() {
- System.out.println("bbb()...");
- }
- }
- package test.com;
- public class Test02CCC extends Test02BBB {
- int c = 333;
- String c2 = "ccc";
- public Test02CCC() {
- System.out.println("Test02CCC()...");
- }
- public void ccc() {
- System.out.println("ccc()...");
- }
- }
- package test.com;
- public class Test02Main {
- public static void main(String[] args) {
- System.out.println("Inheritance...");
- //3개의 객체를 각각 생성하고 필드값들을 출력하시오
- //메소드들도 각각 호출하시오..
- System.out.println("============= class AAA ==============");
- Test02AAA aa = new Test02AAA();
- aa.a = 11;
- aa.a2 = "aaa";
- System.out.println(aa.a);
- System.out.println(aa.a2);
- aa.aaa();
- System.out.println("============== class BBB =============");
- Test02BBB bb = new Test02BBB();
- bb.b = 22;
- bb.b2 = "bbb";
- System.out.println(bb.a);
- System.out.println(bb.a2);
- System.out.println(bb.b);
- System.out.println(bb.b2);
- bb.aaa();
- bb.bbb();
- System.out.println("============== class CCC =============");
- Test02CCC cc = new Test02CCC();
- cc.c = 33;
- cc.c2 = "ccc";
- System.out.println(cc.a);
- System.out.println(cc.a2);
- System.out.println(cc.b);
- System.out.println(cc.b2);
- System.out.println(cc.c);
- System.out.println(cc.c2);
- cc.aaa();
- cc.bbb();
- cc.ccc();
- }
- }
- package test.com;
- public class Test02Main2 {
- public static void main(String[] args) {
- System.out.println("Inheritance...다형성");
- //다형성 : 객체 형변환, 동일타입(상속관계)간에 가능
- // 상속이 전제되어진 경우 부모클래스로 객체생성시 자식의 생성자로 객체생성 가능.
- // 자신의 클래스 멤버들만 접근가능
- System.out.println("========== class AAA ===========");
- Test02AAA aa = new Test02BBB();
- aa.a = 11;
- aa.a2 = "aaa";
- System.out.println(aa.a);
- System.out.println(aa.a2);
- aa.aaa();
- aa = new Test02CCC();
- aa.a = 11;
- aa.a2 = "aaa";
- System.out.println(aa.a);
- System.out.println(aa.a2);
- aa.aaa();
- System.out.println("=========== class BBB ==========");
- Test02BBB bb = new Test02CCC();
- bb.b = 22;
- bb.b2 = "bbb";
- System.out.println(bb.a);
- System.out.println(bb.a2);
- System.out.println(bb.b);
- System.out.println(bb.b2);
- bb.aaa();
- bb.bbb();
- System.out.println("=========== class CCC ==========");
- Test02CCC cc = new Test02CCC();
- cc.c = 33;
- cc.c2 = "ccc";
- System.out.println(cc.a);
- System.out.println(cc.a2);
- System.out.println(cc.b);
- System.out.println(cc.b2);
- System.out.println(cc.c);
- System.out.println(cc.c2);
- cc.aaa();
- cc.bbb();
- cc.ccc();
- }
- }
- package test.com;
- public class Test02Main3 {
- public static void main(String[] args) {
- System.out.println("Inheritance....형변환");
- //형변환 : 다형성과 유사하며,상속을 전제로한다.
- Test02Main3 tm = new Test02Main3();
- //다운캐스팅
- Test02BBB ta = (Test02BBB) tm.getAAA();
- System.out.println("ta:"+ta);
- System.out.println("ta:"+ta.a);
- System.out.println("ta:"+ta.a2);
- ta.aaa();
- //다형성(업케스팅)
- Test02AAA ta2 = tm.getAAA();
- System.out.println("================");
- tm.setAAA(new Test02BBB());
- tm.setAAA(new Test02CCC());
- }
- private void setAAA(Test02AAA ta) {
- System.out.println(ta);
- }
- private Test02AAA getAAA() {
- // Test02AAA ta = new Test02BBB();
- return new Test02BBB();//다형성(업케스팅)
- // return new Test02CCC();//다형성(업케스팅)
- // return new Test02AAA();//사용불가
- }
- }
728x90
반응형
'JAVA > 15. Inheritance(상속)' 카테고리의 다른 글
상속예제 (member, score, board) (0) | 2016.06.29 |
---|---|
추상클래스 (0) | 2016.06.29 |
상속의 정의 및 예제 (0) | 2016.06.29 |