아자 와자 아자
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
profile

아자 와자 아자

@와자!

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!