형변환

염지은·2021년 12월 12일
0

java

목록 보기
26/45

[ 클래스간의 형변환(*) ]

  • 클래스간에는 형변환이 안되지만 상속관계에서는 형변환이 가능하다.
  • 부모클래스는 자식클래스를 참조할 수 있지만 자식클래스에서 추가된 멤버는 참조할 수 없다.
    단 오버라이딩된 멤버는 참조가 가능하다.
  • 자식클래스에서 부모클래스를 참조할 수는 있지만 이때는 강제형변환을 해야 한다.
    class Shape1{
    	public void draw() {
    		System.out.println("도형그리기");
    	}
    	public void move() {
    		System.out.println("도형이동하기");
    	}
    }
    class Rect1 extends Shape1{
    	public void draw() {// 오버라이딩
    		System.out.println("사각형그리기");
    	}
    	public void paint(String color) {
    		System.out.println(color +"색상으로 사각형 칠하기");
    	}
    }
    public class Test03_형변환 {
    	public static void main(String[] args) {
    		Rect1 r1=new Rect1();
    		r1.draw();
    		r1.move();
    		r1.paint("red");
    		Shape1 s=r1;//가능
    		s.move();
    		//s.paint("red"); --> 에러:자식에서 추가된 메소드는 호출못함
    		s.draw(); // 자식클래스에서 오버라이딩된 draw메소드가 호출됨
    		
    		Rect1 r2=(Rect1)s;
    		r2.draw();
    		r2.paint("blue");
    	}
    }

0개의 댓글