반응형
[광고 누르면 오늘의 행운 상승!!]
부모 클래스로부터 상속받는 기능 중 특정 기능을 재정의 하는 것을 말한다.
return, method이름, 파라메타가 항상 같아야 한다.
접근지정자는 같거나 보다 넓은 범위여야 한다.
overloading과의 차이점은 파라메타가 같은가 다른가이다.
변수는 오버라이딩이 안된다.
toString Overriding
toString메소드는 객체를 출력할 경우 호출된다. toString메소드를 구현하지 않을 경우
클래스 네임과 해쉬코드를 출력한다. 자바의 모든 클래스는 자동으로 Object클래스를
상속 받게 되어있다. 그래서 여러 메소드(예를 들면 toString메소드)를 오버라이딩해서 사용한다.
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(getName())
.append("\t")
.append(getAge())
.append("\t");
return builder.toString();
}
System.out.print(this.toString());
System.out.print(this);
System.out.print(toString());
//셋다 같은 역할을 한다 object의 toString 을 오버라이딩
finalize
finalize 메소드는 객체가 소멸할 때 호출하지만, 개발자가 오버라이딩 하는 경우는 거의 없다.
Comparator, Compare
Priority Queue는 기본적으로 Minheap으로 구성 → 오름차순 정렬
정렬을 바꾸기 위해선 Comparator의 Compare함수를 재정의해주어야 한다.
<<Comparator>>
PriorityQueue<String> pq = new PriorityQueue<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
<<Compare>>
-가 붙지않으면 오름차순
@Override
public int compareTo(Car o) {
return name.compareTo(o.name);
}
-가 붙으면 내림차순
@Override
public int compareTo(Car o) {
return -name.compareTo(o.name);
}
equals Overriding
shift + alt + s 눌러서 equals를 오버라이딩 할 수 있다.
기본적으로 .equals는 값을 비교하지만 equals를 오버라이딩 하여 클래스의 특정
멤버변수만을 비교하게 사용 할 수도 있다.
반응형
'3. 자바 > 2. Class' 카테고리의 다른 글
Input, Output (0) | 2020.03.02 |
---|---|
중첩 클래스 (0) | 2020.03.02 |
this, super (0) | 2020.03.02 |
생성자 (0) | 2020.03.02 |
Interface (0) | 2020.03.02 |