자바 오리엔테이션

상속

예제에 곱하기 메소드를 추가해야 한다고 생각해보자. 동시에 기존의 로직을 수정할 수 없는 상황에 있다. 그럼 새로운 클래스를 만들어서 기능을 추가하게 될 것이다. 아래 예제에서 붉은색으로 표시한 부분은 두개의 클래스가 중복되는 기능을 가지고 있음을 의미한다. 

package offline_tutorials;
class Calculator{
    public int left;
	public int right;
	public void sum(){
		System.out.println(left+right);
	}
	public void avg(){
		System.out.println((left+right)/2);
	}
}
class multiplicationableCalculator{
	public int left;
	public int right;
	public void sum(){
		System.out.println(left+right);
	}
	public void avg(){
		System.out.println((left+right)/2);
	}
public void multiply(){
		System.out.println(left*right);
	}
}
public class Company {
	public static void main(String[] args) {
		multiplicationableCalculator c1 = new multiplicationableCalculator();
		c1.left = 10;
		c1.right = 20;
		c1.multiply();
	}
}

상속

위와 같은 문제를 해결하는 방법이 바로 상속이다. 

package offline_tutorials;
class Calculator{
    public int left;
	public int right;
	public void sum(){
		System.out.println(left+right);
	}
	public void avg(){
		System.out.println((left+right)/2);
	}
}
class multiplicationableCalculator extends Calculator{
	public void multiply(){
		System.out.println(left*right);
	}
}
public class Company {
	public static void main(String[] args) {
	
		multiplicationableCalculator c1 = new multiplicationableCalculator();
		c1.left = 10;
		c1.right = 20;
		c1.multiply();
	}
}

 

댓글

댓글 본문