→ Object 클래스로 생성된 참조변수에는 모든 클래스로 생성된 객체 저장 가능
package inheritance;
//자동차정보(모델명,소유자명)를 저장하기 위한 클래스
// => 클래스 선언시 상속받은 부모클래스가 없는 경우 기본적으로 Object 클래스를 자동으로 상속
// => 모든 Java 클래스는 무조건 Object 클래스를 상속받아 사용 가능
public class Car /* extends Object */ {
private String modelName;
private String userName;
public Car() {
// TODO Auto-generated constructor stub
}
public Car(String modelName, String userName) {
super();
this.modelName = modelName;
this.userName = userName;
}
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
//Object 클래스의 toString() 메소드를 오버라이드 선언
// => Object 클래스의 toString() 메소드는 숨겨지고 Car 클래스의 toString() 메소드 호출
// => VO 클래스에서는 필드값을 문자열로 변환하여 반환 처리되도록 작성 - 필드값 확인
@Override
public String toString() {
return "모델명 = "+modelName+", 소유자 = "+userName;
}
}
package inheritance;
public class CarApp {
public static void main(String[] args) {
Car car=new Car("싼타페", "홍길동");
System.out.println("모델명 = "+car.getModelName());
System.out.println("소유자 = "+car.getUserName());
System.out.println("======================================================");
/*
//Object.toString() : 참조변수에 저장된 객체정보(메모리주소)를 문자열로 변환하여 반환하는 메소드
System.out.println("car.toString() = "+car.toString());
//참조변수를 출력할 경우 자동으로 Object 클래스의 toString() 메소드 호출
System.out.println("car = "+car);
*/
//Object 클래스의 toString() 메소드를 오버라이드 선언한 경우 자식클래스의 메소드 호출
System.out.println("car = "+car);
System.out.println("======================================================");
String name="홍길동";
//String 클래스에서 toString() 메소드를 오버라이드 선언하여 String 클래스의 메소드 호출
//String.toString() : String 객체에 저장된 문자열을 반환하는 메소드
//System.out.println("name.toString() = "+name.toString());
//참조변수 출력시 toString() 메소드 호출 생략 가능
System.out.println("name = "+name);
System.out.println("======================================================");
}
}