상속을 할때 is와 has가 있다는데 헷갈려서 정리해봤다.
In Java, a Has-A relationship is also known as composition. It is also used for code reusability in Java. In Java, a Has-A relationship simply means that an instance of one class has a reference to an instance of another class or an other instance of the same class. For example, a car has an engine, a dog has a tail and so on. In Java, there is no such keyword that implements a Has-A relationship. But we mostly use new keywords to implement a Has-A relationship in Java.
is는 같다고 할 수 있는것,
예를 들자면 Pulsar는 Bike의 한 종류이니 Pulsar = bike가 성립된다.
Parent parent = new Child();
부모클래스의 변수와 메소드만 호출할 수 있고
자식클래스에 부모클래스에게서 Override한 메소드가 있다면 그 메소드는 호출이 가능하다. (객체의 암묵적 형변환)
has는 포함하고 있는것,
Pulsar는 엔진을 포함하고 있지만, Pulsar != Engine 이다.
class Pulsar {
Engine engine = new Engine();
engine.start();
}
다른 객체를 받아들여서 그 객체의 기능을 사용하는 것
받아들인 객체의 변수와 메서드를 사용할 수 있다. (멤버변수를 객체로 사용하는 것)
(Pulsar가 뭔가 찾아봤는데 어썸하다)
출처
https://www.c-sharpcorner.com/UploadFile/3614a6/is-a-and-has-a-relationship-in-java/
https://gbs1995.tistory.com/41
https://minusi.tistory.com/entry/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5%EC%A0%81-%EA%B4%80%EC%A0%90%EC%97%90%EC%84%9C%EC%9D%98-has-a%EC%99%80-is-a-%EC%B0%A8%EC%9D%B4%EC%A0%90