목록분류 전체보기 (137)
코딩 이야기
타입변환과 다형성 타입변환을 이용하면 객체 지향 프로그래밍의 중요한 특징인 다형성을 구현할 수 있습니다. 다형성은 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 프로그램입니다. 다형성을 구현하려면 매소드 재정의와 타입변환이 필요합니다. 자동 타입 변환 기본타입과 같이 클래스도 타입변환이 있는데 클래스의 변환은 상속 관계에 있는 클래스 사이에서 발생합니다. 자식은 부모타입으로 자동 타입 변환이 가능합니다. 자동 타입 변환은 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말합니다. 부모타입 변수 = 자식타입; ↑ ↓ ← 자동 타입 변환 예를 들어 Cat 클래스로부터 Cat 객체를 생성하고 이것을 Animal 변수에 대입하면 자동 타입 변환이 일어납니다. Cat c..
메소드 재정의 부모 클래스의 모든 메소드가 자식 클래스에 맞게 되어 있다면 이상적이지만, 어떤 메소드는 자식 클래스가 사용하기에 적합하지 않습니다.이 경우 상속된 일부 메소드는 자식 클래스에서 다시 수정해서 사용해야 하는데 이것을 메소드 재정의라고 합니다. 메소드 재정의 방법 부모의 메소드와 동일한 시그니처(리턴 타입, 메소드 이름, 매개 변수 목록)를 가져야 합니다. 접근 제한을 더 강하게 재정의할 수 없습니다. 새로운 예외(Exception)를 throws할 수 없습니다. * 접근 제한을 더 강하게 재정의할 수 없다 : 부모 메소드가 public 접근제한을 가지고 있을 경우 재정의하는 자식 메소드는 default나 private접근제한으로 수정할 수 없다는 뜻입니다. 단, 반대의 경우는 가능합니다. ..
객체 지향 프로그래밍에서도 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있습니다. 프로그램에서는 부모 클래스를 상위 클래스라고 부르고 자식 클래스를 하위 클래스 또는 파생 클래스라고 부릅니다. 클래스 상속 자식 클래스를 선언할 때 어떤 부모가 클래스를 상속받을 것인지 결정하고, 선택된 부모 클래스는 다음과 같이 extends 뒤에 기술합니다. class 자식 클래스 extends 부모클래스{ //필드 //생성자 //메소드 } 자바에서 상속의 특징 1.여러 개의 부모 클래스를 상속할 수 없습니다. 그러므로 다음과 같이 extends 뒤에는 단 하나의 부모 클래스만 와야합니다. class 자식클래스 extends 부모클래스1, 부모클래스2 { } (여러개의 부모클래스는 올 수 없다.) 2.부모 클래스에서..
접근 제한자란 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 제한하기 위해 사용한다. 클래스와 인터페이스를 다른 클래스에서 사용하지 못하도록 하거나 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드를 메소드를 사용하지 못하게 막아야하는 경우에도 사용된다. 접근 제한자는 3가지 종류가 있는데, public, protected, private 가 있습니다. public 접근 제한자 : 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있게 합니다. protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용할 수 있게 합니다. private 접근 제한자 : 단어 뜻 그대로 개인적인 것이라 외부에서 사용될 수 없도록 합니다. 위 3가지 접근 제한자가 적용되지 않으면 de..