Hello

Java 단일상속(Single Inheritance), Object 클래스

by 볼빵빵오춘기

단일 상속(Single Inheritance)

  • java는 하나의 부모만 상속하는 단일 상속만을 허용한다. (C++은 다중상속 허용)
  • 다중상속을 포기하는 대신 인터페이스가 그 역할을 할 수 있도록 한다.
  • 또는 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.
더보기

왜 단일 상속만 허용하나?

class TvDVD extends Tv, DVD{ // error, 조상은 하나만 허용

}

 

다중상속시 문제점이 많다.

예를들면 Tv, DVD 둘 다 기능중에 power()라는 기능이 있다고 했을 경우 이름은 같으나 기능이 다르다고 했을 때 어느 것을 상속받아야하는지 충돌문제가 있기 때문이다.

 

Object클래스 

  • Object클래스는 모든 클래스의 조상이다.
  • 부모가 없는 클래스는 자동적으로 Object클래스를 상속받게 된다.
  • 모든 클래스는 Object클래스에 정의된 11개의 메서드를 상속받는다. 
    • 컴파일시 자동으로 extends Object가 추가된다.
    • toString(), equals(Object obj), hashCode(),….

 

예제코드

class MyPoint{
	int x;
	int y;
}

class Circle extends Object{
	MyPoint p;
	int r;

	Circle(){
		p = new MyPoint();
	}
}

public class InheritanceTest{
	public static void main(String[] args){
		Circle c = new Cicle();
		System.out.println(c.toString()); 
		// extends Object 자동적으로 상속되어 toString()사용가능
	}
}

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기