무향향수

[Java]상속 본문

SW아카데미 (23)/JAVA

[Java]상속

튼튼한장 2023. 7. 6. 13:37
 

[Day4] 상속, 인터페이스와 다른 형식의 클래스, 예외처리

 

Chapter 7-1 상속

목차 

🎈

  1. 상속의 특징

🎈 상속의 특징

  • 부모 클래스를 동시에 여러개 상속받을 수 없다. (Java는 다중상속을 지원하지 않는다.)
  • 상속을 포함하여 다른 클래스의 메서드 및 필드를 사용하는 방법
  • 1. 다른 클래스를 상속받아 main클래스의 객체를 이용하여 사용하기
  • 2. 클래스를 상속받지 않고 main클래스에 다른 클래스의 객체를 이용하여 사용하기
  • 3. 클래스를 상속받지 않고 main클래스에 다른 클래스.필드명 또는 메소드를 작성하여 사용하기

Car 클래스를 상속 받지 않고 main 클래스에 Car 객체를 생성하여 필드 및 메서드 사용하기

public class TestExtends{
    public static void main(String[] args){
        Car c = new Car();// main 클래스 객체 생성

        System.out.println(c.count); // Car 클래스 필드 & 메서드 사용
        c.carColor();
    }
}

class Car{
    public int count = 1;

    public void carColor(){
        System.out.println("yellow");
    }
}

 

 

Car 클래스를 상속 받아 main 클래스에 객체를 생성하여 필드 및 메서드 사용하기

public class TestExtends extends Car{
    public static void main(String[] args){
        testExtends te = new testExtends(); // main 클래스 객체 생성

        System.out.println(te.count); // Car 클래스 필드 & 메서드 사용
        te.carColor();
    }
}

class Car{
    public int count = 1;

    public void carColor(){
        System.out.println("yellow");
    }
}
 

 

Car클래스의 메서드들에 static을 붙여서 Car.메서드명 또는 Car.필드명으로 사용하기

public class TestExtends{
    public static void main(String[] args){
        System.out.println(Car.count); // 클래스.필드명 & 클래스.메서드명으로 사용하기
        Car.carColor();
    }
}

class Car{
    public static int count = 1; // static키워드를 사용하여 전역변수로 만들어주기
    public static void carColor(){
        System.out.println("yellow");
    }
}

 


🎈사용 방법 요약

  상속 여부 main 객체 생성 여부 타 클래스 객체 생성 여부
extends 상속 O O X
일반 X X O
static 키워드 X X X

 

⚠️ 사용 방법을 확인하고 상황에 맞는 방법을 찾아 사용하기 ⚠️

 

 


 

 

더보기
닫기

내용 요약⭐

  • Java에서는 extends를 사용하여 상속을 받는다.
  • extends를 이용하는 방법 외에도 객체 생성 및 static 키워드로 부모 클래스 상속 받기가 가능하다.

 

더보기
닫기

❓질문

  1. static 사용을 제외하고 extends 키워드 사용 유무와 관계없이 무조건 인스턴스를 생성해야하는 이유?
  2. main 클래스를 제외한 나머지 클래스에 접근지정자를 붙이면 안되는 이유?

 

'SW아카데미 (23) > JAVA' 카테고리의 다른 글

[Java]추상클래스  (0) 2023.07.07
[Java]오버라이딩  (0) 2023.07.06
[Java]final 키워드  (0) 2023.07.05
[Java]인스턴스 멤버와 정적 멤버  (0) 2023.07.05
[Java] switch문  (0) 2023.07.05