JAVA_28_단일상속과 Object클래스

charl hi·2021년 8월 17일
0

JAVA

목록 보기
28/53

단일상속

  • JAVA는 하나의 부모만 상속한다.(= 단일상속)
  • 인터페이스를 활용해 충돌(다중상속의 단점)을 방지하고 다중상속의 효과를 낼 수 있다.
  • 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계

예)

class Tv2 {
	boolean power;
	int channel;
	
	void power() { power = !power;}
	void channelUP() { ++channel;}
	void channelDown() { --channel;}
}

class DVD {
	boolean power;
	
	void power() { power = !power;}
	void play() { /*내용생략*/}
	void stop() { /*내용생략*/}
	void rew() { /*내용생략*/}
	void ff() { /*내용생략*/}
}

class TvDVD extends Tv2 {
	DVD d = new DVD();
	
	void play() {		// 이런 식으로 메소드를 만들어서 호출해야 한다!!
		d.play();
	}
	void stop() {
		d.stop();
	}
	void rew() {
		d.rew();
	}
	void ff() {
		d.ff();
	}
}



Object 클래스

  • 모든 클래스의 조상

  • 조상이 없는 클래스는 자동으로 Object클래스를 상속받는다.

  • 작성하지 않아도 extends Object를 컴파일러가 추가한다.

  • ✨모든 클래스는 Object클래스가 정의하는 11개의 메소드를 상속받는다.

    • toString(), equals(Object obj), hashCode() ...

toString()

  • 객체의 정보를 문자열로 반환하는 메소드
class Point2 {	// extends Object 
	int x;
	int y;
}

class Circle {	// extends Object
	Point2 p = new Point2();	// Circle클래스 포함
	int r;
}

public class InheritenceTest {

	public static void main(String[] args) {
		Circle c = new Circle();
		c.p.x = 2;
		c.p.y = 4;
		c.r = 5;
		System.out.println("원의 좌표는 ("+c.p.x+", "+c.p.y+"), 반지름은 "+c.r+"이다.");
		
		// Object클래스 내의 메소드 toString()사용하기
		System.out.println("c.toString : "+c.toString());
		System.out.println("c : "+c);
		// c.toString 대신 c만 해도 된다!!
	}

}

원의 좌표는 (2, 4), 반지름은 5이다.
c.toString : Circle@4517d9a3
c : Circle@4517d9a3




Ref

0개의 댓글

관련 채용 정보