본문 바로가기
국비 과정/Java

국비 - 0718 (오버로딩 , 오버라이딩 ,super)

by 코딩호야 2022. 7. 18.

오버로딩                                                      오버라이딩
 
  class AA{                                                   class BB{

  public void display(){}                               public void display(){
  }
  public void display(int a){}                          class CC extends BB{        
  public void display(char b){}                         public void display() {        }
  }                                                                            }
 
  오버라이딩은 기존의 클래스를 이용하여 새로운 클래스를 만들때 , 
  기존의 클래스의 메서드와 의미적으로는 같지만 약간의 변화가
  필요한 메서드를 만들때 사용합니다.
 
  super ( 슈퍼 )
 
  : this 는 객체 자신을 뜻하는 반면에 super 는 상속관계에서
  부모클래스의 객체를 가르키는 키워드 입니다.
 
  1. 상속받은 슈퍼클래스에 있는 멤버 변수나 메서드에 접근할때 사용합니다.
  super.멤버변수 ,  super.멤버 메서드 (매개변수)
 
  2. 슈퍼클래스의 생성자를 호출할때 사용합니다.
  super();    // 항상 맨위에 기술되어야한다.   (객체가 먼저  생성되므로)

 

System.out.print     -> 여기서   out 을 err 로 쓰면 콘솔창에 빨간색으로 표시된다.

 

 

fianl                // 대표적으로 System 클래스, String 클래스

메서드 에서 final 은 오버라이딩 할수 없다.

클래스에서 final 상수는 상속받을수 없는 상수이다.
 
  종단 클래스
 
  클래스를 선언할때 final 키워드를 사용하는 클래스를 종단 클래스라고 합니다.
  종단 클래스는 더이상 상속할수 없는 클래스입니다.
 
  형식 
  final class 클래스이름 {
     .....;
    }

 

객체의 형변환


모든 자료형은 형변환 할수 있습니다. 객체도 형변환 할수 있습니다.


하지만 모든 객체 사이에 형변환이 가능한것은 아니고 상속관계에 있는 클래스 사이에 

만 형변환이 가능합니다
클래스의 계층 구조에서 슈퍼클래스와 서브클래스 사이에 형변환이 가능합니다.

컴파일러가 자동으로 처리해 주는 확대 형변환은 작은 크기의 자료가 보다
큰 크기의 자료형으로 바뀌는 것입니다. 객체도 마찬가지 원칙이 적용됩니다.
좁은 범위의 객체가 넓은 범위의 객체로 형변환 될수 있습니다.

부모클래스와 자식클래스 중에 부모가 넓은 범위 입니다.
좁은 범위인 자식 클래스가 넓은 범위를 갖는 부모 클래스로 형변환 될수 있습니다.

형식

super obj1  =  new sub();     // 확대 형변환  (자동 형변환) 확대 형변환은 생략가능 

sub obj2 = (sub)obj1;           //  축소 형변환