딱콩이의 봄

상속(Inheritance) 본문

개발/JAVA

상속(Inheritance)

코린이딱콩 2022. 8. 29. 23:45

✔️상속은 연관 있는 클래스들에 대해 공통적인 구성요소를 정의하고, 이를 대표하는 클래스를 정의하는 것을 의미합니다.

✔️상속 관계는 "is a" 관계를 의미하며 extends 키워드를 이용해 상속 관계를 정의합니다.

✔️상속 관계에서 상속을 받는 클래스를 sub class, derived class, child class, extended class 라 합니다.

✔️상속 관계에서 상속을 제공하는 클래스를 super class, base class, parent class 라 합니다.

public class Manager extends Employee {
		//필드 및 메소드
}


✔️자식클래스는 부모 클래스를 상속받아 부모 클래스의 모든 자원(속성, 메서드)을 사용할 수 있습니다.

✔️자식 클래스는 부모클래스에 없는 필드와 메서드를 정의하여 기능을 추가할 수 있습니다.

    또한, 상위클래스에 정의된 메서드를 재정의하여 다르게 동작시킬 수 있습니다.(오버 라이딩)

 

public class Employee {
		
    private String name;
    private double salary;
	
    
    public Employee(String name) {
    	this.name = name;
    }
    
    public double getSalary() {
    	return salary;
    }
    
    public void setSalary(double salary) {
    	this.salary = salary;
        
    }
    
    public String getName() {
    	return name;
        
     }
     
    }
    
    public class Manager extends Employee { //Employee 상속
    	
        private double bonus;
        
        public Manager(String name) {
        	super(name);
         }
         
         public void setBonus(double bous) {
         	this.bonus = bonus;
         }
         
         public double getSalary() { //오버라이딩
         	return super.getSalary() + bonus;
          }
          
      }

✔️상속 대상이 되는 부모 클래스에 protected 접근 제한자로 정의된 구성요소는 자식 클래스 구성요소가 됩니다.

✔️자식 클래스는 부모 클래스의 protected, public 구성요소에 대해 this 접근이 가능합니다.

   즉 상속관계에서 자식 클래스는 부모 클래스에서 제공하는 구성요소들을 자신의 구성요소로 포함합니다.

✔️부모 클래스의 private 구성요소는 자식 클래스에서 직접 접근할 수 없습니다.

 

# : protected로 정의 , - : private으로 정의 , + : public으로 정의

public class Shape {
	protected int x;
    protected inty;
    protected Color color;
    
    public void draw() {
    	System.out.println("Drawing Shape");
    }
  }
  
  
public class Rectangle extends Shape {
	private int width;
    private int height;
    
    public void resize(int width, int height) {
    	this.width = width;
        this.height = height;
    }
    
    public void move(int x, int y) {
        this.x = x;
        this.y = y;
    }
  }

 

 

🧐Reference

https://youtu.be/yOmXcaUaD7U

 

'개발 > JAVA' 카테고리의 다른 글

오버라이딩(Overriding)  (0) 2022.08.30
상속 관계의 초기화 과정  (0) 2022.08.30
static & final 💡💡  (0) 2022.08.29
static & final💡  (0) 2022.08.29
JAVA 메모리 모델  (0) 2022.08.29
Comments