728x90
728x90
이 게시글은 남궁성의 정석코딩 - 자바의 정석 기초편(2020최신)을 보고 공부한 내용을 정리한 게시글입니다.
틀린 내용이 있을 수 있습니다.
✔ 상속
class Parent{}
class Child extends Parent{}
- 기존의 클래스로 새로운 클래스를 작성하는 것.
- 서로 다른 두 개의 클래스를 부모와 자식 관계로 맺어주는 것.
- 자식 클래스는 부모 클래스의 모든 변수와 메서드를 상속받는다. (단, 생성자와 초기화블럭은 제외이다.)
- 자식 클래스의 변경은 부모 클래스에게 영향을 미치지 않는다.
- 상속은 제약이 많기 때문에 주로 꼭 필요한 경우에만 사용한다.
- Java에서는 단일 상속만 허용한다. (class A extends B, C{} 불가)
- 비중이 높은 클래스 하나만 상속관계로 하고, 나머지는 포함관계로 만든다.
class Point{
int x, y;
}
class Circle extends Point{
int r;
}
public class Test {
public static void main(String[] args) {
Circle c = new Circle();
c.x = 3;
c.y = 10;
c.r = 5;
System.out.printf("%d, %d, %d", c.x, c.y, c.r); // 3, 10, 5
}
}
Circle 클래스는 Point 클래스를 상속받는다.
Circle 클래스는 Point 클래스의 변수를 사용할 수 있다.
Object 클래스
Object 클래스는 모든 클래스의 조상이다.
모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받는다.
✔ 포함
- A클래스 안에 B클래스 타입의 변수를 선언하고 B클래스 타입의 객체를 만드는 것.
- 작은 단위의 클래스를 만들고 이들을 조합해서 큰 클래스를 만든다.
class Point{
int x, y;
}
class Circle{
Point p = new Point();
int r;
}
public class Test {
public static void main(String[] args) {
Circle c = new Circle();
c.p.x = 3;
c.p.y = 10;
c.r = 5;
System.out.printf("%d, %d, %d", c.p.x, c.p.y, c.r); // 3, 10, 5
}
}
Circle 클래스 안에 Point 클래스 타입의 객체를 생성했다.
main() 메서드 안에 Circle객체만 존재할 때 Point클래스에 접근하려면, c.p.x 로 접근해야한다.
728x90
728x90
'💻 Study > Java' 카테고리의 다른 글
[Java] 객체지향개념5_변수의 초기화 (0) | 2023.01.30 |
---|---|
[Java] 객체지향개념3_메서드 (0) | 2023.01.30 |
[Java] 객체지향개념2_변수 (0) | 2023.01.30 |