본문 바로가기

JAVA 공책/=> 다시 정리

인터페이스

다형성(Polymorphism)

: 동일한 코드가 상황에 따라서 전혀 다른 메소드를 호출하는 것.

▷ 상속과 오버라이딩을 통해서 구현한다. Bcz. 하나의 코드가 다른 메소드를 호출하려면 다른 클래스의 인스턴스를 참조할 수 있어야 하기 때문이다. 다른 클레스의 인스턴스를 참조할 수 있는 것은 하위 클래스 밖에 안되어 상속이 필요하다)

추상클래스(abstract class)

: 인스턴스를 생성할 수 없는 클래스

▷ class 앞에 abstract를 추가하면 추상클래스를 만들 수 있다.

▷ 왜 만들어야 하나? 여러개의 클래스에 공통된 내용이 있어서

Interface

: 추상메소드와 상수 그리고 default 메소드를 가진 개체.

▷ 모형을 먼저 만들고, 상속 받은 클래스에서 구현해서 사용.⇒템플릿 메소드 패턴

▷ 추상클래스처럼 인스턴스 생성을 못한다.⇒new 할 수 없다.

▷ 추상클래스는 extends로 상속하고 / 인터페이스는 implements로 구현한다.

▷ 여러개를 implements할 수 있다.

▷ 인터페이스에는 abstract를 붙이지 않아도 메소드는 추상메소드가 된다.

▷ 인터페이스에서 변수를 선언하면 자동으로 final이 붙는다.⇒변수를 변경할 수 없음

▷ 인터페이스에 내용이 있는 메소드를 만드려면, 결과형 앞에 default를 붙여야 한다.

▷ 인터페이스는 인스턴스를 생성할 순 없지만 참조형 변수는 선언이 가능하다.

▷ 인터페이스의 참조형 변수에는 인터페이스를 implements한 클래스의 인스턴스를 대입할 수 있다.

▷ 메소드의 매개변수가 인터페이스나 추상클래스이면, 인터페이스나 추상클래스를 상속받은 클래스의 인스턴스를 대입하라는 것이다. (없으면 만들어서 대입하라는 것이다)

▷ 매개변수의 자료형이 Object 이면 어떤 데이터든지 대입이 가능하다.

▷ 메소드의 return 타입이 인터페이스나 추상클래스이면, 변수에 저장해서 사용해야 한다. 상속 받은 클래스가 있다면 강제 형변환해서 사용해야 한다.

▷ 메소드의 return 타입이  Object이면 반드시 형변환해서 사용해야 한다.(Object에는 어떤 자료형이든 대입이 가능하다고 했는데 꺼내서 쓸 때는 그 객체의 자료형이 무엇인지 알 수 없기 때문에 진짜 자료형을 확인 한 후에 진짜 자료형으로 강제형변환 해서 사용해야 한다)


Inner Class

: 클래스 안에 생성하는 클래스.

▷ 클래스 내부나 메소드 안에 클래스를 생성해서 사용하는 것이 가능


Anonymous Class

: 클래스를 별도로 생성하지 않고 인스턴스를 생성해서 사용하는 것.

▷ 어떤 클래스를 상속받아서 인스턴스를 만든 후 1번만 사용하는 경우에 주로 사용

▷ 만드는 방법

new 인터페이스 나 클래스이름 (){

메소드 재정의

}


'JAVA 공책 > => 다시 정리' 카테고리의 다른 글

Parameter  (0) 2018.08.24
Exception Handling(예외처리)  (0) 2018.08.23
Trigger  (0) 2018.07.31
Oracle의 프로그래밍 PL/SQL & Procedure  (0) 2018.07.31
Database에서의 Inline view & Rownum & Sequence & Index & Synonym  (0) 2018.07.31