그냥
7. 다형성

다형성 (Polymorphism) 다형성이란 어떤 객체가 다양한 형태 로 변할 수 있는 것 ↘ 부모 클래스형의 변수 로 참조 중인 개체 ( 무늬 ) ↘ 실제 개체에 구현된 메서드 ( 실체 ) 사람들이 OOP의 핵심이라 여기는 특징이다. 객체들에게 같은 지시를 내렸는데 다른 종류의 객체가 동작을 달리하는 것을 말한다. 다형성의 혜택을 받으려면 상속 관계가 필요하다. 부모 객체에서 함수 시그내처를 선언하고 자식 객체에서 그 함수를 다르게 구현하는 것이다. 이를 오버라이딩 이라고 한다. 오버라이딩 부모 클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것을 오버라이딩 이라고 한다. (부모 클래스에서 메서드의 시그내처를 정해주고, 자식 클래스에서 그 메서드의 구현을 덮어씀) 그렇지 않으면 부..

6. 상속(3)

클래스 형변환 자식을 부모에 대입하는 건 안전하지만 부모를 자식에 대입하는 건 되는 경우, 안되는 경우도 있지만 일단 컴파일에서 막아버린다. 자식을 부모에게 대입하는건 암시적 형변환이다. cat cat1 = new cat(“Rubi”, 2, “female”); animal animal = cat1; 위와 같이 작성 해도 컴파일러가 animal animal = (animal)cat1; 로 작성한 것처럼 해준다. 반대로 부모를 자식에게 대입하려면 명시적 형변환을 해야한다. cat cat1 = new cat(“Rubi”, 2, “female”); animal animal = cat1; cat cat2 = (cat)animal; 이때 cat cat2 = (cat)dog; 같은 코드는 상속 관계가 아니기에 형변환..

5. 상속 (2)

protected 접근 제어자 외부에서 접근할 수 없다. 클래스 내부, 같은 패키지에 속한 클래스, 자식 클래스만 접근이 가능하다. 컴포지션과 상속 둘 다 재사용성을 위한 방법이다. 상속으로 해결할 수 있는 문제들 컴포지션으로도 가능하다. 포함 (compostion) : 컴포지션 한 클래스의 멤버 변수로 다른 클래스를 선언하는 것이다. 작은 단위의 클래스를 먼저 만들고, 이 들을 조합해서 하나의 클래스로 만든다. class battery { int capacity; } class mouse { battery newb = new battery(); public void Click() {} } has-a 관계와 is-a 관계 컴포지션과 상속을 어디에다가 적용해야 할 지 모르겠으면 has-a 관계와 is-a ..

4. 상속 (1)

상속 OOP의 핵심이라 여겨지는 특성이며, 다형성의 기반이 된다. 이미 존재하는 클래스를 기반으로 새 클래스를 만드는 방법이다. ↘부모 클래스 ↘자식 클래스 새 클래스는 기존 클래스의 동작과 상태를 그대로 물려받는다. 그 외에 새 클래스만의 동작과 상태를 추가를 할 수 있다. ※ JAVA에서 상속은 단일 상속만 허용한다. 다중 상속은 불가능 개, 고양이, 앵무새를 만든다고 했을 때 class dog{ public String name; public int age; public String sex; public void walk(){ } public void eat() { } public void shout(){ } public dog(String name, int age, String sex){ this..

검색 태그