JAVA/배운 후

오버로딩 /오버라이딩

규율 위에 자유 2023. 5. 4. 18:57
오버로딩리턴 타입 함수명은 같으나 /파라미터만 다른것
들어가는 매개변수는 다르고 리턴값 같다.
 
 
 
오버라이딩-자식클래스에서 다시 만들어서 쓰는것
동적 바인딩 =재 정의된 메서드를 먼저 부른다는 규칙

 

 
※필드는 오버라이딩 되어도 필드는 부모타입을  따라감
※메소드는 오버라이딩 되면 자식의 메소드 실행
 
ex) 클래스 1
public class Parent {
public int i = 5;
public void printI(){
System.out.println("parent = printI() :" +i);
}
}
 
    
클래스 2 (상속)
public class Child extends Parent {
public int i = 15; // parent 필드에 대한 오버라이딩
public void printI(){ //parent 메소드에 대한 오버라이딩
System.out.println("parent = printI() :" + i);
}
}
 
 
오버라이딩
 
package com.example.util;
 
public class Exam01 {
public static void main(String[] args){
Parent p1 = new Parent();
System.out.println(p1.i);
p1.printI();
 
System.out.println("----------------------------");
 
Child c1 = new Child();
System.out.println(c1.i);
c1.printI();
 
System.out.println("----------------------------");
 
Parent p2 = new Child(); //child는 Parent의 후손이다
System.out.println(p2.i);
p2.printI();
}
}
 
메소드 오버라이딩만 기억
+정보은닉은 객체지향의 중요한 기법 중요한 필드는 은닉 하고 필드는 메소드를 통해서만 접근 -
신호등 예시 신호등 때문에 지각 했을때 신호등을 없애면 안전에서 벗어나기 때문에 없애면 안된다.