Manager 는 Employee 의 상속 관계
Employee 에는 a(), b() 객체
Manager 에는 b(), c() 객체
호출 시,
Employee e = new Manager();
e.a(); 가능
e.c(); 가능
e.b(); 불가능
e.b() 를 가능하게 하려면
Manager m=(Manager)e;
m.b(); 으로 가능
똑같은 이름의 메소드를 중복하여 정의하는 것
정상적으로는 같은 이름의 메소드는 불가능하지만, 매개변수의 개수나 타입(=값, argument)을 다르게 하면 가능.
println()
, display()
등의 메소드가 대표적인 예
모든 자바 클래스의 최상위 부모 클래스, 모든 클래스는 extends Object
를 포함하고 있음
자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있음
대표적인 메소드로 toString()
, equals()
, clone()
등이 있음
boolean equals(Object obj) {}
의 내용을 함축시킨 것
==
과 같은 값을 반환하는데, 메소드이기에 오버라이딩이 가능하다는 차이점이 있음
같은 값을 가지고 있는 객체끼리의 비교는 각각 가지고 있는 주소 값이 다르기 때문에, 항상 false
를 반환
객체명 e1 = new 객체명("ㅁㄴㅇㄹ")
객체명 e2 = new 객체명("ㅁㄴㅇㄹ")
if (e2.equals(e1)) {
System.out.println("true");
} else {
System.out.println("false");
}
= false 반환
equals()
메소드가 String 타입에 맞게 오버라이딩 됨String e1 = new String("ㅁㄴㅇㄹ")
String e2 = new String("ㅁㄴㅇㄹ")
if (e2.equals(e1)) {
System.out.println("true");
} else {
System.out.println("false");
}
= true 반환
상속 관계에서 부모객체인지 자식객체인지 확인하기 위해, 객체 타입을 확인하는 연산자인 instanceof
을 사용
객체(부모) + instanceof + 클래스(자식), (여기선 객체끼리의 비교)
equals()
메소드를 오버라이딩 해줘야함