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();
}
}
메소드 오버라이딩만 기억
+정보은닉은 객체지향의 중요한 기법 중요한 필드는 은닉 하고 필드는 메소드를 통해서만 접근 -
신호등 예시 신호등 때문에 지각 했을때 신호등을 없애면 안전에서 벗어나기 때문에 없애면 안된다.