Spring/Model1 _2(MVC)

0922 JSP - 메서드 오버라이딩

jeoniee 2022. 9. 22. 15:28
728x90
반응형

 메서드 시그니처

= 메서드명, 메서드 전달인자의 타입, 전달인자의 개수 


 메서드 오버로딩 

1) 메서드 명 동일

2) 메서드의 전달 인자 타입 다름
3) 메서드의 전달 인자 개수 다름 

메서드 오버라이딩 

1) 메서드 명 동일
2) 메서드의 전달 인자 타입 동일
3) 메서드의 전달 인자 개수 동일 
4) 접근지정자의 범위가 좁아질 수 없음 

 public void method() {}
 private void method() {}
 public void method() {}

 

부모의 메서드 
(생략) void method() {}

void method();



오버라이딩 된 메서드 , 사용할 수 있는 것 골라보기 

 

(ㅇ)public void method() {}
(ㅇ)private void method() {}
(ㅇ)void method() {}
(x) private void method() {}


 

 

package ex;



class Parent1{
	public void pprn() {
		System.out.println("P : pprn() ");
	}
}

class Child1 extends Parent1{
//	public void cprn() { 
//		System.out.println("C : cprn() ");
//	}
	// alt shift s + v 
	@Override
	public void pprn() {
		super.pprn();
		//System.out.println("P : pprn() ");
	}
	public void cprn() { 
		System.out.println("C : cprn() ");
		
	}
	
}


// main() 포함하는 메서드 
public class Test2 {

	public static void main(String[] args) {
		Parent1 p1 = new Parent1();
		p1.pprn();
		
		System.out.println("----------------------------------");
		
		Child1 c1 = new Child1();
		c1.cprn();
		c1.pprn();


}
}
P : pprn() 
----------------------------------
C : cprn() 
P : pprn()

super

부모의 객체 레퍼런스

 

super.pprn()

부모의 은닉된 메서드를 호출하겠다는 뜻. 

 

this

나 자신의 객체 레퍼런스

=> 처음 클래스 생성 시 컴파일러가 1개씩 생성됨

 

 

 

생성자는 상속 가능하다 [o/x]

=> 상속 안됨!

상속 되지 않는 유일한 멤버 메서드

 

개발자가 별도의 명시적 호출 없이 자동으로 서브클래스의 생성자는 (부모)슈퍼 클래스의 디폴트 생성자를 호출 

 

class Itwill{
	public Itwill() { 
		System.out.println(" Itwill 생성자 ");
	}
}

class ItwillBusan extends Itwill{
	public ItwillBusan() {
		System.out.println(" ItwillBusan 생성자 ");
	}
	
}

 

 

Itwill iw = new Itwill(); //itwill 생성자만 만들어진다. 
System.out.println("----------------------------------");
		
ItwillBusan iwb = new ItwillBusan(); // itwill 생성자, itwillbusan 생성자 만들어진다.

 


생성자를 지웠을 때, 실행 할 수 있을까? 
=> 생성자가 사라졌는데, 기본 생성자를 호출 할 수 있는지?
 지워도 생성자가 있음! 

 

기본 생성자는 컴파일러가 자동 생성 해준다.  다만, 오버로딩 된 생성자가 없을 경우에만. 

class Itwill{
	//기본 생성자는 컴파일러가 자동 생성 해준다. 
	// => 오버로딩 된 생성자가 없을 경우 
//클래스 구성요소 
//1) 변수 
	
//2) 생성자 

//3) 메서드 
//	public Itwill() { 
//		System.out.println(" Itwill 생성자 ");
//	}
}

 

728x90
반응형