자바 기본6 - 객체지향개념 2
객체지향의 필수 개념2
상속
- 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것이다.
- 조상과 자손의 관계를 맺어주는 것이다.
- 자손은 조상의 모든 멤버를 상속받는다.
- 단일 상속만을 허용한다.
- 조상이 없는 클래스는 자동으로 Object 클래스를 상속받는다.
오버라이딩
- 조상클래스의 메서드를 상속받은 클래스에서 재사용 하는 것이다.
- 선언부(이름, 매개변수, 리턴타입)가 같아야 한다.
- 조상보다 좁은 범위의 접근 제어자를 사용할 수 없다.
- 조상의 메서드보다 많은 수의 예외를 선언할 수 없다.
- super, this를 사용하여 조상의 멤버와 자손의 멤버를 구별한다.
제어자
- 클래스, 변수, 메서드 선언부에 사용되어 부가적인 의미를 부여한다.
접근제어자: public, protected, default, private
- public: 어디서든 접근 가능하다.
- protected: 동일한 패키지 또는 자손 클래스에서 접근 가능하다.
- private: 해당 클래스 내에서만 접근 가능하다.
- default: 동일한 패키지 내에서만 접근 가능하다.
그 외:static,final,abstract, native, transient, synchronized, volatile, strictfp
- static: 멤버변수, 메서드, 초기화 블럭에 사용된다. 클래스 변수로 메모리에 할당되어 공유가능한 변수가 된다.
- final: 클래스, 메서드, 지역변수에 사용된다. 변경할 수 없는 클래스, 메서드, 상수가 된다.
- abstract: 클래스 내에 추상메서드를 선언할 때 사용된다.- 메서드에 static과 abstract를 함께 사용할 수 없다.
- 클래스에 abstract와 final을 동시에 사용할 수 없다.
- abstract 메서드의 접근제어자가 private 일 수 없다.
- 메서드에 private와 final을 같이 사용할 필요는 없다.
다형성
- 여러가지 형태를 가질 수 있는 능력을 뜻한다.
- 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있다. 반대는 불가능하다.
- 참조형 매개변수는 메서드 호출시 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.
형변환
- 업캐스팅 형변환은 생략 가능하지만 반대는 불가능 하다.
- instanceof 메서드를 사용하여 참조변수가 참조하는 인스턴스의 실제 타입을 체크할 수 있다.
추상클래스
- 추상메서드를 포함하고 있는 클래스이다.
- 다른 클래스를 작성하는데 도움을 줄 목적으로 생성한다.
- 추상메서드는 선언부만 있고 몸통이 없는 메서드이다.
- 동일한 기능을 자손마다 다르게 구현해야할 경우에 사용한다.
- 추상클래스를 상속받는 자손클래스는 추상메서드의 구현부를 완성해야 한다.
인터페이스
- 추상클래스보다 추상화 정도가 높다.
- 추상메서드와 상수만을 멤버로 가질 수 있다.
- 인스턴스를 생성할 수 없고 클래스 작성에 도움을 줄 목적으로 사용한다.
- 다중상속이 가능하다.
- 개발시간 단축, 표준화, 독립적인 프로그래밍, 관계 생성 등의 장점이 있다.
- 인터페이스를 메서드의 매개변수 타입으로 지정할 수 있다.
내부클래스
- 클래스 내부에 선언된 클래스를 뜻한다.
- 내부클래스에서 외부클래스 멤버들을 쉽게 접근 할 수 있다.
- 코드의 복잡성을 줄일 수 있다.
- 내부클래스도 외부클래스의 멤버로 간주되며 동일한 접근성을 갖는다.
- 인스턴스 메서드에서는 인스턴스 멤버와 static 멤버 모두 접근 가능하다.
- 메서드 내에 지역적으로 선언된 내부클래스는 외부에서 접근 불가능하다.
- 외부클래스의 지역변수는 final이 붙은 변수만 접근 가능하다.
- 인스턴스 클래스의 인스턴스를 생성하려면 먼저 외부클래스의 인스턴스를 먼저 생성해야 한다.
This post is licensed under CC BY 4.0 by the author.