Skip to content
DarkKaiser의 블로그
DarkKaiser의 블로그
  • 개발 관련 자료(노션)
  • Raspberry Pi(노션)
  • WD My Cloud(노션)
  • GitHub
DarkKaiser의 블로그

abstract와 interface

DarkKaiser, 2007년 6월 22일2023년 9월 4일

abstract

  • 추상메서드는 몸체 없는 프로토타입만을 가진 메서드이다.
  • 추상메서드는 반드시 메서드 이름 앞에 abstract 키워드를 명시해야 한다.
  • 추상메서드를 단 하나라도 포함하고 있으면 추상 클래스가 된다.
  • 추상클래스는 클래스 이름 앞에 abstract를 명시해야 한다.
  • 반드시 상속을 이용하여 객체를 생성할 수 있으며, 추상메서드를 가진다면 추상메서드를 모두 구현한 뒤, 객체를 생성할 수 있다.
  • abstract 클래스는 클래스이다.
  • 추상메서드와 일반 메서드, 일반 멤버 메서드를 가질 수 있다.
  • 상속을 위해서 extends를 사용한다.
  • 오직 단일적으로 extends를 사용한다.
  • 모든 추상메서드는 구현하여야 사용할 수 있다.
  • 작업의 레벨 분할을 위해서 사용된다.
  • Upcasting이 가능하다.

인터페이스

  • 모든 메서드는 묵시적으로 public abstract이다.
  • 모든 멤버 데이터는 묵시적으로 static final이다.
  • abstract 메서드를 포함하고 있기 때문에 객체를 생성할 수 없다.
  • extends를 이용하여 상속을 하는 것이 아니라 implements를 이용하여 구현한다.
  • 인터페이스도 클래스의 일종이다. 특히 추상클래스의 일종이다.
  • 구현을 위해서 implements를 사용한다.
  • 여러 개를 중복하여 implements 할 수 있다.
  • 모든 추상메서드를 구현하여야 사용할 수 있다.
  • 공동 작업을 위한 상호 간의 인터페이스를 위해 사용된다.
  • Upcasting이 가능하다.
public interface BodySign {
    public int nTest = 2;
}

위의 코드에서 nTest 멤버는 static final이다. 따라서 파생 클래스에서 수정되어 질 수 없다.

Java AbstractinterfaceJava

글 내비게이션

Previous post
Next post

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ 2017년 9월 14일
  • 자주 사용되는 Lombok 어노테이션 2017년 9월 14일
  • 유니코드 #3 2017년 9월 14일
  • 유니코드 #2 2017년 9월 14일
  • 유니코드 #1 2017년 9월 14일

최신 댓글

    카테고리

    • 개인 자료 (1)
      • 일기 (1)
    • 주절주절 (7)
    • 프로그래밍 갤러리 (16)
    • 프로그래밍 언어 (186)
      • Java (29)
      • C/C++/VC++ (114)
      • C# (11)
      • Visual Basic (6)
      • 안드로이드 (9)
      • Objective-C (5)
      • JavaScript (4)
      • JSP/Servlet (2)
      • Python (4)
      • 어셈블러 (1)
    • 개발++ (44)
      • Book (11)
        • Joel On Software (10)
      • 프로젝트 관리 (6)
      • Maven (1)
      • 디버깅 (1)
      • DirectX (1)
      • Silverlight (1)
      • RESTful (1)
      • Hacking (1)
      • WDM (4)
      • VoIP (5)
      • 기타 (1)
    • 개발 도구 (15)
      • eclipse (14)
      • Sublime Text (1)
    • 네트워크 (7)
    • 설치 및 배포 (7)
      • InstallShield (2)
      • NSIS (4)
    • 버전 관리 (9)
      • Git (2)
      • CVS (2)
      • Subversion (5)
    • 데이터베이스 (7)
      • Oracle (3)
      • Sybase (2)
      • MS-SQL (2)
    • 단위테스트 (3)
      • JUnit (1)
      • NUnit (2)
    • 버그추적시스템 (2)
      • mantis (2)
    • 운영체제 (7)
      • Windows (5)
      • 리눅스 (2)
    • WAS (3)
      • WebLogic (3)
    • 디자인패턴 (1)
    • 디지털 이미지 프로세싱 (16)

    태그

    Abstract ActiveX AfxParseURL Automation boost devenv.exe event EventLogTraceListener Hover interface IO iTextSharp JAD jar JavaScript Joel Leave MFC Monitor msdev.com MSDN mutable PDF Properties RAW Saturation SHGetFolderPath SHGetKnownFolderPath SQLite STLTask String TextWriterTraceListener URL VI 권한 데이터소스 디컴파일러 문자열 스레드 동기화 스레드 생성 실용주의 프로그래머 자동화 테스팅 파일포맷 프리컴파일

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org
    ©2025 DarkKaiser의 블로그 | WordPress Theme by SuperbThemes