728x90

 

상속을 배우기 위해 계산기 클래스가 필요

class Cal {
	public int sum(int v1, int v2) {
		return v1+v2;
	}
}
public class Inheritance01 {

	public static void main(String[] args) {

		Cal c = new Cal();
		System.out.println(c.sum(2,1));		
	}

}

추가로 마이너스 기능을 넣고 싶다면?

일 잘하는 사람은 sum()메소드를 복사해서 새 클래스를 생성

class Cal1 {
	public int sum(int v1, int v2) {
		return v1+v2;
	}
}
class Cal2 {
	public int sum(int v1, int v2) {
		return v1+v2;
	}
	public int minus(int v1, int v2) {
		return v1-v2;
	}
}
public class Inheritance01 {

	public static void main(String[] args) {

		Cal1 c = new Cal1();
		System.out.println(c.sum(2,1));
		
		
		
	}

}

오리지널인 클래스 Cal1의 버그나 업데이트 했다고하면 오리지널과 같은 기능을 가지고 있는 Cal2 및 다른 여러 클래스들은 똑같이 반영이 안되기 때문에 일일히 수많은 코드를 수정해야한다

또한 같은 내용의 코드도 굉장히 많아질 것

코드가 1억줄이라면 각기 다른 클래스의 같은 내용의 메소드를 쉽게 알아보기가 매우 어려울 것

 -이때 우리가 유용하게 쓸 수 있는 것이 상속(Inheritance)

 

상속(Inheritance)이란?

어떤 클래스가 가지고 있는 변수메소드확장해서 상속해서 다른 클래스갖도록 하는 것

 

상속의 장점

  1. 코드의 재사용성up
  2. 유지보수 편의성 up
  3. 가독성 up
  4. 코드의 양 down

 

 

부모클래스(=superClass)

자식클래스(=subClass)

 

 

전체코드

// Java 상속 - 1. 수업소개 : 상속의 정의 & 장점

class Cal1 {
	public int sum(int v1, int v2) {
		return v1+v2;
	}
}
class Cal3 extends Cal1{		// extends : Cal1을 상속
	
}
public class Inheritance01 {
	public static void main(String[] args) {

		Cal1 c1 = new Cal1();
		System.out.println(c1.sum(2,1));
		
		Cal3 c3 = new Cal3();
		System.out.println(c3.sum(2,1));
		
		
	}
class Cal2 {
	public int sum(int v1, int v2) {
		return v1+v2;
	}
	public int minus(int v1, int v2) {
		return v1-v2;
	}
}
}
728x90
반응형

+ Recent posts