2018년 4월 19일 목요일

(4. 19.) 다형성, Override, Abstract

1. 타입변환과 다형성
  ○ 부모클래스로 타입변환 허용
     : 즉, Tire tire = new MyTire(); / Tire tire1 = new YourTire(); 처럼
      Tire를 상속받은 자식클래스를 생성하면서 부모클래스로 타입변환 가능
2. 상속, 다형성과 JVM 동작절차
   ○ 필드의 다형성(Polymorphism variable)

   ○ 왜 부모타입으로 사용하니?
       - 다형성을 구현하기 위해 사용한다.
       - 즉, 필드 타입은 변함없지만 실행 도중 갈래길에서 실행결과가 달라질 수 있다.

   ○ 위의 Car Class를 배열로 관리하기
       - class Car{ Tire[] tires={new Tire("FR", 6), new Tire("FL", 6), new Tire("BR", 6), new Tire("BL", 6)};}

   ○ 매개변수의 다형성
      - run(Object o);
      - run(Shape s);
      - run(Component c);
LINE 1:                       Driver d = new Driver();
LINE 2: Bus b = new Bus();
LINE 3: Taxi t = new Taxi();

public void drive(Vehicle v){//오류 미발생
v.run();
}

public void drive(Bus v){//Line 3 컴파일 오류
v.run();
}


3. Abstract 
○ 추상(Abstract): 공통 특성 추출
   - instance 생성 불가
   - extends 뒤에만 가능
○ 추상(Abstract)클래스 용도
     1. 용도에 맞는 클래스의 필드와 메소드 통일
     2. 클래스 작성시간 절약

○ 추상(Abstract)클래스 선언
    public abstract class Phone{
         ...
     }
○ 추상 메소드 선언
    public abstract class Animal{
       public abstract void sound();
   }
○ 추상 메소드 오버라이딩
    @Override
     public void sound(){ //"멍멍";};

댓글 없음:

댓글 쓰기

[Android Studio] Installation and Make a Layer for Mac OS(High Sierra)

1. download android studio https://developer.android.com/studio/#downloads 2. Make a Shared Resource(String in this case) 3...