쌍용 강북 교육센터 국비학원 Day 14일차
애너테이션 (@,annotation)
@Override 어노테이션은 부모 클래스로부터 상속받은 메소드의 내용물을 모두 변경할 때 쓰이는 것이다. (범위는 따로 지정하지 않는다)
Override
어떤 객체가 있을 때 그 객체의 필드(변수)와 메소드를 다른 객체가 물려 받을 수 있는 기능을 상속이라고 한다.
객체를 자신이 만들지 않았거나, 소스를 변경 할 수 없고, 임의로 추가하면 불필요한 기능이 포함될 수 있으며 이러한 기능으로 인해 상속을 활용한다.
상속은 상위클래스에서 하위클래스에게 물려주는 기능이다. 반대로 주어진 것만 사용하지 않고 이런 제약을 벗어나 동작방법을 변경하여 재정의하는 것을 메소드 오버라이딩(overridng)이라고한다.
예를들어 같은 상속된 클래스에서 동일한 메소드를 실행시키면 상위클래스 메소드보다 하위클래스의 메소드 실행이 더 우선적이라는 것이다. (자바는 다중상속이 불가능하다)
오버라이딩이 성립하기 위한 조건
- 부모클래스의 메소드의 이름, 매개변수(매개변수 안의 데이터 타입, 순서), 리턴값이 같아야 한다.
- 접근제어자를 부모클래스의 메소드보다 좁은 범위로 변경할 수 없다. (같거나 커야한다.)
- 예외는 부모클래스의 메소드보다 많이 선언할 수 없다.
모든 클래스의 최상위는 Object를 extends를 하고 있다. (생략되어짐)
Overloading
메소드의 이름이 같다고 하더라도 매개변수의 숫자와 데이터타입이 다르면 그것은 다른 메소드로 인식한다. 환경과 조건에 따라 동일 한 이름의 메소드를 여러개 정의하는것 이것을 오버로딩(overloading)이라고 한다.
(다시 말해 이름은 같지만 매개변수를 다르게 처리하기 위해서 메소드를 중복으로 선언 할 수 있는 방법이다)
오버로딩이 성립하기 위한 조건
- 메소드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 리턴 타입은 영향없다.
=> 리턴타입은 달라도 아무런 관련이 없고 오직 메소드명과 파라미터 (매개변수)만 영향을 끼친다.
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 16일차 Java (static 블럭, Final, Interface) (0) | 2023.01.25 |
---|---|
쌍용강북교육센터 국비 학원 Day 15일차 Java (다형성, abstract 추상화) (0) | 2023.01.20 |
쌍용강북교육센터 국비 학원 Day 13일차 Java (접근제어자) (0) | 2023.01.18 |
쌍용강북교육센터 국비 학원 Day 12일차 Java (Date, Calendar, OOP, 정규표현식) (2) | 2023.01.17 |
쌍용강북교육센터 국비 학원 Day 11일차 Java (String 클래스) (0) | 2023.01.16 |