본문 바로가기

IT/자바

final, 오버라이딩, 오버로딩

MyMain_Final.java

package mymain;
// final : 더 이상 하지 못하게 하는 키워드
// 오버로드 : 한클래스내에서 똑같은 클래스 중복 선언가능 중복 메소드라고도 함
class A 
{
	// 상속을 해준 상태에서  
	protected void sub () {}
	
	final void sub_final () {}
	
	public void sub2 () {}
}
// 접근제한자 크기 순서 : private < default < protected < public
// 오버라이딩은 상속관계에서만 가능
class AA extends A 
{
	//Method Override(메소드 재정의) : 부모클래스의 메소드를 재정의하는 것
	public void sub () {}
	
	//void sub_final () {} 부모에서 final을 선언하였기에 재정의 불가
	@Override
	public void sub2() {
		super.sub2();
	}
}

class AAA
{
	//결과형은 상관없고, 반환형도 틀려서 오버로딩이 되는건 아니고 인자값이 틀려야 함
	public 	int plus(int a, int b) { return a+b; }
	private int plus(int a, int b, int c) { return a+b+c; }
	int plus(int nr) { return 0; }
}




/*	final
	1.변  수: final static 자료형 변수명=값; <=상수선언시
	2.메소드: final 반환형 메소드명 (){} <= 더이상 재정의하지 말아라 
	3.클래스: final class MyClass <= 더이상 상속받지 말아라
*/
//String클래스에서 확장 받아서 원하는 것을 추가해서 확장하기 위해 상속받음

//상속 불가 클래스 (String) class MyString extends String {}

public class MyMain_Final {

	public final static double PI=3.14;
	
	public static void main(String[] args) {
		
		final int MY_AGE=20;
		//MY_AGE=21;
		//PI=3.141592;

		
		
	}
}


'IT > 자바' 카테고리의 다른 글

업캐스팅 1  (0) 2018.05.04
자바 연산자  (0) 2018.05.03
생성자 초기화 순서  (0) 2018.05.03
awt 윈도우 창2 상속관련  (0) 2018.05.03
awt 윈도우 창  (0) 2018.05.03