생성자 (메서드) 오버로딩
- 메서드 오버로딩 : 한 클래스내에서 기능이 비슷한 메서드는 매개변수의 개수와 타입이 다르다면 같은 이름으로 선언할 수 있다.
- 생성자 오버로딩 시 default 생성자도 선언해야 한다
- 다양한 인수를 전달하여 객체생성에 유연하게 활용할 수 있고, 다양한 초기 설정 처리가 가능하다.
- this( ) : 특정 생성자 안에서 다른 생성자 호출, 생성자 블럭 제일 위쪽에 위치해야함
- 접근지정자 붙일 수 있음
class Car {
public int num;
public double gas;
public Car( ){//Default 생성자
num = 0; gas = 0.0;
System.out.println("변수 초기화");
}
public Car(int n, double g){ //매개변수 있는 생성자 오버로딩
this( );
num = n; gas = g;
System.out.println("입력받은 매개변수 값 대입");
}
}
상속 - extends
- 상속 하는 클래스 : 슈퍼 클래스, 부모 클래스
- 상속 받는 클래스 : 서브 클래스, 자식 클래스
- class 서브 클래스 extends 슈퍼클래스{ }
- 서브 클래스는 슈퍼 클래스의 멤버를 상속받는다(따로 작성할 필요x)
- 슈퍼 클래스의 생성자는 서브 클래스에게 상속되지 않는다
- 슈퍼 클래스의 인수 없는 생성자(default 생성자)는 자동 호출 됨
- 슈퍼 클래스 생성자 지정 : super( )
- 슈퍼 클래스에서 private로 지정하면 서브 클래스도 접근 불가(protected 이용)
오버라이딩 - @Override
- 상속받은 서브클래스에서 메서드 이름, 매개변수 갯수, 매개변수 타입 모두 같게 메서드를 정의 할 수 있음
- 오버라이딩 못하게 할려면 슈퍼클래스에서 final로 지정하면 됨
추상 클래스, 메서드 - abstract
- 추상 클래스 : abstract class 클래스명{ }
- 추상 메서드 : abstract void 메서드명( );
- 추상 클래스는 객체를 생성할 수 없다
- 추상 메서드를 포함해야 한다
- 추상클래스를 상속받은 서브클래스는 상속받은 추상 메서드를 오버라이딩해서 구현해야한다
- instanceof 연산자 : 좌변의 변수가 가리키는 객체의 클래스가 오른쪽과 같은 클래스인지 여부 확인
인터페이스 - interface
- 생성자를 갖지 못함
- 객체 생성 못함
- 내가 쓰지 않아도 필드에는 public static final , 메서드에는 abstract가 붙는다고 생각 (즉, 상수와 추상메서드)
- 인터페이스 타입 변수 선언은 가능
- 인터페이스를 구현하는 클래스에는 implements 키워드를 붙이고, 인터페이스의 메서드는 추상메서드와 같기 때문에 모두 구현해야 함
- implements 뒤 인터페이스 2개 이상 구현 가능
- 인터페이스 다중 상속(extends) 가능
'{ "Hello World!" }; > Java' 카테고리의 다른 글
java/ 문자열 한 글자씩 비교, 대/소문자 비교 및 변환 (0) | 2023.09.23 |
---|---|
(Java) 메모장으로 코딩하고 컴파일, 실행하기 (0) | 2022.02.17 |
ch12/ 입출력 처리 (0) | 2021.12.20 |
ch11/ 컬렉션 프레임워크 (0) | 2021.12.14 |
Ch10/ 예외 처리와 제네릭 프로그래밍 (0) | 2021.12.13 |