final과 Object

이규은·2021년 10월 5일
0

상속

목록 보기
6/6

final

final은 초기값이 저장되면 최종적인 값이 되어 프로그램 실행 도중에 수정할 수 없다.

final 필드

final int a = 1;

fianl 필드는 위와 같이 선언한다. 초기값을 줄 수 있는 방법은 두가지 방법밖에 없다.
필드 선언시에 주거나 생성자를 통해서 주는 방법이 있다.

final 객체

class Company {
    String name = "회사";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class finalStudy {
    public static void main(String[] args) {
        final Company company = new Company();
        //company = new Company();	//재성성 불가능
        company.setName("회사!!");	//필드 변경 가능
    }
}

객체 변수에 final로 선언하면 그 변수에 다른 참조 값을 지정할 수 없다.
객체자체는 변경이 불가능하지만 객체 내부 변수는 변경할 수 있다.

final 클래스

final class Company{
    String name = "회사명";
}

//class A_Company extends Company{ }	//상속 받을수 없다

클래스의 final을 사용하면 크 클래스는 최종상태가 되어 더이상 상속이 불가능하다.
필드는 Setter함수를 통하여 변경은 가능하다

final 메서드

class Company{
    String name = "회사명";

    public final void print() {
        System.out.println(name);
    }
}

class A_Company extends Company{
    String name = "a회사";
	
    //public void print() { }	//메서드 오버라이드 불가능
}

메서드에 final을 사용하면 상속받은 클래스에서 부모의 fianl 메서드를 재정의 할 수 없다.

Object

Object 클래스는 모든 클래스의 최상위 클래스로 모든 클래스는 Object 클래스에서 상속을 받는다. 모든 클래스는 Object 클래스의 메서드를 사용 가능하고 그 중 일부는 재정의 하여 사용할 수 있다.

profile
안녕하세요

0개의 댓글