Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- sklearn
- matplotlib
- del
- insert()
- hierarchical_clustering
- 분류 결과표
- analizer
- Dictionary
- Machine Learning
- string
- IN
- elbow method
- append()
- nan
- 최솟값
- Python
- 최댓값
- DataFrame
- wcss
- data
- dendrogram
- count()
- list
- pandas
- DataAccess
- 반복문
- len()
- numpy
- 덴드로그램
- function
Archives
- Today
- Total
개발공부
[Java] Method Overriding 메소드 오버라이딩이란 ? 본문
오버라이딩 Overiding
부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의 하는 것이다.
오버라이딩은 부모 클래스의 메소드를 재정의 하는 것이므로, 자식 클래스에서는
오버라이딩 하고자 하는 메소드의 이름, 파라미터, 리턴 값이 모두 같아야 한다.
예제
Parent.java
public class Parent {
String name;
int age;
private int money;
Parent(){
System.out.println("Parent 생성자가 호출됨");
}
void printInfo() {
System.out.println("name : " + name);
System.out.println("age : " + age);
}
// money에 대한 Getter, Setter 생성
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
Child.java
- super 키워드를 사용하면 부모 클래스의 메소드, 매개변수를 불러올 수 있다.
- 부모클래스의 멤버 변수나 메소드가 private 이면 직접적으로 접근할 수 없고,
멤버 변수의 경우에는 Getter / Setter를 통해 접근 가능하다.
- @Override의 @ 는 어노테이션(Annotation)이며 주석이라는 뜻이다.
이는 일반적인 주석과 다르게 검증을 하는 기능이 있다. @Override 라는 어노테이션을
사용하면 코드상으로 검사했을 때 오버라이딩이 실제로 시행되지 않았다면 컴파일 시
오류가 발생한다.
public class Child extends Parent{
// 이 클래스는, Parent 클래스가 가지고 있는
// 속성들을 상속받을 것이다.
String hobby;
Child(){
System.out.println("Child 생성자 호출됨");
}
// Method Overloading :
// 하나의 클래스 안에서 똑같은 이름의 함수를 여러개 만드는 것
// Method Overriding 메소드 오버라이딩
// 상속하는 클래스에서 즉, 자식클래스에서
// 부모 클래스에 들어있는 함수 이름을 그대로 사용해서
// 내가 원하는대로 내용만 바꿔서 사용하는 것
@Override
void printInfo() {
super.printInfo();
System.out.println("hobby : " + hobby);
}
}
Main.java
public class Main {
public static void main(String[] args) {
Parent p = new Parent();
p.name = "부모";
p.age = 50;
p.setMoney(10000000);
p.printInfo();
System.out.println("money : " + p.getMoney());
// 상속받은 Child 클래스를 메모리에 생성 (객체 생성)
Child c = new Child();
c.name = "자식";
c.age = 20;
c.setMoney(50000);
c.hobby = "게임";
c.printInfo();
System.out.println("money : " + c.getMoney());
}
}
'Java > Basic' 카테고리의 다른 글
[Java] UpCasting / DownCasting (0) | 2022.07.05 |
---|---|
[Java] 부모 메소드 호출을 위한 super 사용법 (0) | 2022.07.05 |
[Java] 클래스 상속 (0) | 2022.07.04 |
[Java] 멤버 변수와 지역 변수의 차이점 (0) | 2022.07.04 |
[Java] 접근 제어자와 Getter / Setter 함수 (0) | 2022.07.04 |