반응형 JAVA23 [JAVA] Chapter 11. Inheritance (3) ① Polymorphism 상속과 Method Overriding의 개념을 잘 조합하면, 다형성을 이해할 수 있다. 가장 기본 형태인 rv.m()에서, 상속이 걸려있다면 reference variable(rv)은 최상위 Super class로 고정한다. 이렇게 하면, 나중에 Sub class가 만들어지더라도 rv로 해당 클래스의 인스턴스를 참조할 수 있다. 또한 method에 overriding이 걸려있다면 method(m)은 Sub Class의 메서드로 고정된다. 즉, rv.m()라는 코드는 바뀌지 않는데 Overriding된 메서드의 body가 다르기 때문에 인스턴스마다 다른 결과가 나온다. 이것이 한 객체가 여러 개의 형태로 나타날 수 있는 성질인 Polymorphism, 다형성이다. 어떤 언어가 .. 2023. 7. 15. [JAVA] Chapter 11. Inheritance (2) ① Method Overriding Method overriding은 객체지향에서 매우 중요한 개념이기 때문에, 다음 세 가지 개념을 잘 기억해 두어야 한다. 1) Method Overriding은 Super 클래스에서 선언된 메서드의 이름, 리턴 타입, 파라미터 선언까지 완전히 동일한 메서드를 Sub 클래스에서 새롭게 재정의 하는 것이다. 즉, 완전히 동일한 메서드인데 body를 다르게 쓰는 것이다. 하지만 메서드를 이렇게 정의하면, 메서드를 호출했을 때 어떤 메서드를 쓰는지 구분이 어렵다. overloading에서는 파라미터로 구분했는데, overriding은 이름과 파라미터까지 모두 같기 때문이다. Overriding에서는 Sub 클래스의 메서드로 Super 클래스의 메서드를 가린다. Sub가 가장.. 2023. 7. 14. [JAVA] Chapter 11. Inheritance (1) ① 상속 상속이란, super 클래스가 가지고 있는 변수와 메서드를 sub 클래스에게 그대로 물려주는 것이다. 코드로는 class Sub extends Super라고 적는다. Sub 클래스는 상속을 받은 후 본인이 필요한 변수나 메서드를 추가한다. 일반적으로 상속의 목적은 코드의 재활용이라고 알려져 있지만, primary target은 다형성을 위한 것이다. 문법적으로 super class에는 어떤 클래스가 와도 되지만, 상속의 개념을 지키기 위해서는 반드시 IS-A 관계를 만족하는 class를 사용해야 한다. ② Inheritance Rule 1) 상속은 *반드시* IS-A 관계를 만족해야 한다. extends 대신 is a를 넣었을 때 말이 되지 않는다면, 상속을 걸어서는 안 된다. ex) lapto.. 2023. 7. 13. [JAVA] Chapter 10. Array 자바에서는 배열과 컬렉션(Collection) 두 가지 저장소를 사용한다. 배열의 크기가 정해져 있고, 인덱스를 사용하여 요소에 접근할 수 있으며, 연속된 메모리 공간에 요소를 저장하기 때문에 데이터의 접근이 빠르고 효율적이다. 그러나 배열은 크기를 동적으로 변경할 수 없으므로 초기에 지정한 크기보다 더 많은 데이터를 저장할 수 없다. ① What is Array? 배열은 반복문을 사용할 때 유용하게 사용되는데, 반복문을 사용할 때는 고려해야 할 사항들이 있다. 1) 반복문 내부에 들어오는 코드는 코드의 변화 없이 값만 변화해야 한다. 따라서 이름이 다른 변수가 많을 때는 반복문을 사용할 수 없다. 2) for 문 내부에 들어오는 데이터는 반드시 순서를 가지고 있어야 한다. 배열을 저장소 관점으로 접근할.. 2023. 7. 12. 이전 1 2 3 4 5 6 다음