A sentimental robot

Overridding, 재정의 본문

Java

Overridding, 재정의

GOD03219 2017. 12. 29. 10:41

Overridding

 

  •  부모의 멤버를 은닉
  •  부모 + 내꺼
  •  동적바인딩...★


 


 


public class AA {

 private String str;


 public AA(){
  
  
 }
 public AA(String a){


  str=a;
 }
 public void setStr(String str){
  this.str=str;
 }
 public String getStr(){
  return str;
 }
 
}


 

Use 1


 

 


public class DD extends AA{
 
 public String getStr(){   // Overridding, 부모것을 숨기기위해 똑같이 만듬
  return "superman&batman";
 }
 
 public static void main(String[]args){
  
  DD dd=new DD();
  dd.setStr("pororo");    // 읭? pororo는 출력안됨 -> 부모보다 내것이 먼저(부모것 은닉)
  System.out.println(dd.getStr());     // superman&batman 출력
  
 }

}


 

Use 2


 


public class DD extends AA{
 
 public String getStr(){ 


  return super.getStr()+"&batman";     //  super를 통해 상속 받은 부모멤버접근
 }
 
 public static void main(String[]args){
  
  DD dd=new DD();
  dd.setStr("pororo");
  System.out.println(dd.getStr());     // pororo&batman 출력
  
 }

}


 



public class EE {
 public String toString() {
  return "JAVA";


 }

 public static void main(String[] args) {


  EE ee = new EE();


  System.out.println(ee.toString());   // JAVA 출력

  String str = new String("Superman");   // EE의 부모 클래스 String 클래스가 오버라이딩 되어서,
  System.out.println(str.toString());           // Superman 출력

 

 }
}
 


 


class Super {
 Super() {
 }

 void f1() {
  System.out.println("f1()called");
 }

 void f3() {
  System.out.println("superclass f3() called");
 }

 void f5() {
  f1();
  f3();  // 부모클래스에서 f3( )을 불러도  오버라이딩 된 자식 클래스의 메소드가 불려진다.
  
 }
}

public class Sub extends Super {

 Sub() {
 }

 void f2() {
  System.out.println("f2()called");
 }

 void f3() {
  
  System.out.println("subclass f3()");
 }

 void f4() {

  f1();
  f2();
  f3();

 }

 public static void main(String[] args) {

  Sub d = new Sub();
  d.f5();
  
 }

}

 

'Java' 카테고리의 다른 글

추상클래스를 이용한 스택,큐!  (0) 2017.12.29
Abstract class,추상클래스에 대해서  (0) 2017.12.29
Inheritance exercise(2)  (0) 2017.12.29
Inheritance exercise(1)  (0) 2017.12.29
Is~a 상속관계  (0) 2017.12.29