JAVA기초

오랜만에 글을 쓰는 것 같다. 휴일에는 아무래도 잘안하게 되는 것 같다... 뭐랄까 프로젝트 처럼 기간이 정해져 있는 일을 아직은 하는게 아니다보니 아무래도 휴일에는 쉬고싶은 느낌이 든다. 앞으로는 이런 일이 거의 없지않을까..

실습 과제를 계속해서 하고있다. 잘 하고있는지는 모르겠지만 아무튼 작동을 하긴 하니깐.. 문제는 없는게 아닐까라는 생각으로 계속해서 해나가고 있다. 사실 게을러서 대충 해보고 아닌가 싶으면 미루고 다시하고를 반복하고 있다. 한 번에 딱 끝내는 습관을 들이는 것이 좋지 않을까 라는 생각이다.

앞으로는 실습 과제로 푼 알고리즘 같은 것도 따로 올릴 예정이다.

온라인

  1. 클래스 상속

코드의 중복을 줄이고 객체 간의 관계를 지향하기 위함 -> 코드의 수정을 최소화하고 유지보수 시간을 최소화할 수 있다.

부모 클래스에 가지고 있는 필드와 메소드를 자식에게 물려주는 것을 의미한다.

자바에서는 다중 상속은 불가능하다.(부모 클래스가 여럿일 수는 없다.)

java
class 자식클래스 extends 부모클래스 {
	// 필드
	// 생성자
	// 메소드
}

위와 같은 방식으로 상속을 선언해줄 수 있다.

  • 오버라이드

이미 선언한 메소드를 재정의하는 것을 의미한다.
상속된 메소드가 자식 클래스에 맞지 않을 경우 자식 클래스에서 동일한 이름의 메소드를 재정의하는 것이다.

반드시 지켜야할 규칙은 부모 메서드와 동일한 리턴타입, 메소드 이름, 매개변수를 가져야한다는 것이다.
또한 어노테이션을 붙여주는 것이 좋다.

상속이 안되는 경우는 부모 클래스의 접근제어자가 private일 때, 또는 부모 클래스나 메소드가 final로 정의된 경우에는 상속을 할 수 없다. 수정할 수 없다는 최종 상태를 의미하기 때문이다.

  1. 다형성
    Polymorphism
    가장 간단한 형태의 다형성은 오버로딩이다.

상속과 메소드 재정의를 통해서 확장성 있는 프로그램을 만들기 위해서 사용한다.
부모 클래스에서 공통적인 부분을 제공하고 하위 클래스에서 각 클래스에 맞는 기능을 구현하는 식으로 사용하면 된다.

  1. 추상클래스

자식 클래스를 관리하기 위해서 미리 추상적으로 클래스를 선언하는 것

실제로 객체를 생성하는 것은 아니고 이름 정도만 선언하고 상속을 통해서 자식 클래스에 넘겨준 후 관리를 한다.

abstract class 클래스이름

추상 클래스는 추상 메소드를 정의할 수 있다.

public abstract 리턴타입 메소드이름(매개변수);

물론 함수 선언만 해놓고 구현은 상속받은 자식 클래스들이 하는 것이다.

만약 부모 클래스가 추상 클래스이고 추상 메소드가 있는 경우 자식이 상속받은 후 재정의 하지않으면 컴파일 오류가 발생한다.

profile
이따금씩 올라오는 개발자 블로그

0개의 댓글