반응형
상속 (Inheritance)
상속은 객체지향 프로그래밍의 핵심 개념 중 하나입니다. 부모 클래스(슈퍼 클래스)의 특성을 자식 클래스(서브 클래스)가 물려받는 것을 의미합니다. 자식 클래스는 부모 클래스의 속성과 메서드를 사용하거나 확장하여 새로운 기능을 추가할 수 있습니다.
// 부모 클래스
class Animal {
void sound() {
System.out.println("Some sound");
}
}
// 자식 클래스
class Dog extends Animal {
void bark() {
System.out.println("Woof!");
}
}
Dog 클래스는 Animal 클래스를 확장하여 bark() 메서드를 추가하고 있습니다. Dog 클래스는 Animal 클래스를 상속 받았기 때문에 sound() 메서드도 사용할 수 있습니다.
protected 키워드
protected는 접근 제어자 중 하나로, 같은 패키지에 있는 클래스나 상속 관계에 있는 하위 클래스에서만 접근할 수 있습니다. 즉, protected 멤버는 외부에서 직접 접근할 수 없지만, 서브 클래스에서는 접근할 수 있습니다.
class Animal {
protected int legs;
}
static 키워드
static은 클래스 레벨의 키워드로, 인스턴스화하지 않고도 클래스의 멤버에 접근할 수 있도록 합니다. 정적 멤버는 클래스의 모든 인스턴스에서 공유됩니다.
public class Counter {
static int count = 0;
Counter() {
count++;
}
public static int getCount() {
return count;
}
}
public class CounterTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Counter a1 = new Counter();
Counter a2 = new Counter();
System.out.println(Counter.getCount());
}
}
결과 :
위 처럼 Counter 인스턴스를 생성할 때 count가 1씩 증가하도록 구현 후 Counter 인스턴스를 두개 생성 했습니다. static 변수는 클래스의 인스턴스들 간에 공유되기 때문에 결과가 2 인 것을 알 수 있습니다.
super 키워드
super는 자식 클래스에서 부모 클래스의 멤버나 생성자를 참조하기 위해 사용됩니다. 부모 클래스의 메서드를 호출하거나 부모 클래스의 생성자를 호출하는 데 사용됩니다.
class Animal {
String sound() {
return "Some sound";
}
}
class Dog extends Animal {
String sound() {
return "Woof!";
}
String getSuperSound() {
return super.sound(); // 부모 클래스의 sound() 메서드 호출
}
}
super를 사용하여 부모 클래스의 sound() 메서드를 호출하고 있습니다.
반응형
'프로그래밍 > 자바' 카테고리의 다른 글
[Java] 람다(lambda) (0) | 2024.01.09 |
---|---|
[Java] iterator 란? (0) | 2024.01.08 |
[Java] 메소드 오버로딩, 오버라이딩 (1) | 2024.01.04 |
[Java] 자바 네이밍 규칙 (1) | 2023.12.26 |