본문 바로가기

분류 전체보기100

JAVA - 인터페이스와 추상클래스 비교 #.유사한 점 -객체를 생성할 수 없다. -상속을 위한 슈퍼 클래스로만 사용 -다형성을 실현하기 위한 목적 #.차이점 비교 인터페이스 추상 클래스 목적 -객체의 기능을 모두 공개한 표준화 문서와 같은 것 -개발자에게 인터페이스를 상속받는 클래스의 목적에 따라 인터페이스의 모든 추상 메소드를 만들도록 하는 목적 서브클래스에서 필요로 하는 대부분의 기능을 구현해 두고, 서브 클래스가 상속 받을 수 있도록 하되, 서브 클래스가 구현해야한만 하는 기능만을 추상 메소드로 선언하여, 서브 클래스가 구현하도록 함 구성 -변수 필드(멤버 변수)는 포함하지 x -상수, 추상 메서드, 일반 메서드, default메서드, static 메서드 -protected 접근 지정 선언 불가 -다중 상속 지원 - 추상 메소드와 일만 .. 2022. 12. 20.
JAVA - 인터페이스 인터페이스란? -서로 다른 하드웨어 장치들이 상호 데이터를 주고 받을 수 있는 구격을 의미 #.인터페이스(interface) -interface 키워드 사용 #.인터페이스 구성 -상수와 추상메서드(java 7까지) -default 메서드(java 8부터) -private 메서드(java 9부터) - static 메서드(java 9부터) >추상메서드는 abstract로 정해져 있다 > default, private, static 메소드들은 모두 인터페이스 내에 코드가 있어야 한다. > default 메소드 접근 지정은 public으로 고정 > private 메소드는 인터페이스 내에서만 호출 가능 > static 메소드는 접근 지정이 생략되면 public, private로 지정 가능 #.인터페이스는 객체 생.. 2022. 12. 20.
JAVA - 추상클래스 - 상속에서 슈퍼클래스로 사용 #.추상메소드 -선언은 되어 있으나 코드가 구현되어 있지 않은 메소드 -abstract 키워드와 함께 원형만 선언하고 코드 작성x ex) public abstract String getName(); public abstract String fall() {return "Good Bye";} // 코드가 작성되어 있으므로 컴파일 오류 #.추상클래스 -abstract 키워드로 선언 -추상 메소드를 포함하는 클래스 *추상메소드가 있으면 무조건 추상클래스로 선언해야한다 -추상 메소드가 없지만 abstract로 선언한 클래스 -추상 클래스는 객체를 생성할 수 없다. >추상 클래스는 객체를 생성할 목적으로 만드는 클래스가 아니다 >추상 클래스는 실행 코드가 없는 미완성 상태인 추상 메소.. 2022. 12. 19.
JAVA - 캐스팅(casting) 캐스팅(casting)이란? -타입 변환 -업캐스팅(upcasting), 다운캐스팅(downcasting) #.업캐스팅(upcasting) -서브클래스의 객체에 대한 레퍼런스를 슈퍼클래스 타입으로 변환하는 것 -자바에서 서브 클래스는 슈퍼클래스의 속성을 상속받는다. = 서브클래스 객체는 슈퍼클래스의 멤버를 모두 가짐 = 서브클래스의 객체를 슈퍼 클래스의 객체로 취급할 수 있다. #.다운캐스팅(downcasting) -업캐스팅의 반대 -슈퍼클래스 타입의 레퍼런스를 서브클래스 타입의 레퍼런스로 변환하는 것 -명시적으로 타입 변환 지정해야한다. #.instanceof 연산자 -레퍼런스가 가리키는 객체가 어떤 클래스 타입인지 구분하기 위해 사용 2022. 12. 19.