오버로딩과 오버라이딩의 차이

  • 오버로딩은 새로운 메소드를 정의하는 것
  • 오버라이딩은 상속받은 기존의 메소드를 재정의 하는 것

추상 메소드

  • 추상 메소드란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다.
  • 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다.

인터페이스

  • 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다.
  • 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다.
  • 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있습니다.

인터페이스의 장점

  1. 대규모 프로젝트 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능합니다.
  2. 클래스의 작성과 인터페이스의 구현을 동시에 진행할 수 있으므로, 개발 시간을 단축할 수 있습니다.
  3. 클래스와 클래스 간의 관계를 인터페이스로 연결하면, 클래스마다 독립적인 프로그래밍이 가능합니다.

object클래스의 clone() 메소드

  • 해당 인스턴스를 복제하여, 새로운 인스턴스를 생성해 반환
  • 필드의 값만을 복사하므로, 필드의 값이 배열이나 인스턴스면 제대로 복제할 수 없습니다.
  • 이러한 경우에는 해당 클래스에서 clone() 메소드를 오버라이딩하여, 복제가 제대로 이루어지도록 재정의해야 합니다.
  • 이러한 이유로 clone() 메소드는 데이터의 보호를 위해 Cloneable 인터페이스를 구현한 클래스의 인스턴스만이 사용할 수 있습니다.

제네릭

  • 자바에서 제네릭이란 데이터의 타입을 일반화한다는 것을 의미합니다.
  • 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다.
  • 장점
  1. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있습니다.
  2. 반환 값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있습니다.
profile
데이터데이터데이터!!

0개의 댓글