Java
[Java] final
우니010
2021. 3. 14. 16:18
반응형
final 변수
package org.opentutorials.javatutorials.fanalTest;
class Calculator {
static final double PI = 3.14;
int left, right;
public void setOperands(int left, int right) {
this.left = left;
this.right = right;
Calculator.PI = 6; //error
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right)/2);
}
}
public class CalculatorDemo {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOperands(10, 20);
c1.sum();
c1.avg();
}
}
final 로 정의 된 값을 변경하려면 에러가 난다.
final 메소드
package org.opentutorials.javatutorials.finals;
class A{
final void b(){}
}
class B extends A{
void b(){}
}
에러 난다.
final 메소드를 오버라이딩 할 수 없다.
final 클래스
package org.opentutorials.javatutorials.finals;
final class C{
final void b(){}
}
class D extends C{}
에러난다.
final 메소드, final 클래스는 상속 할 수없다.
반응형