다형성(polymorphism),오버라이딩(overriding),오버로딩(overloading)
2020. 3. 11. 12:51ㆍ자바 Java/자바 공부 java study
반응형
다형성(polymorphism)이란?
하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다.
자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있습니다.
다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다.
type이 여러개다,
여러개의 타입을 하나의 코드로 처리할수 있다
한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 구현한 기능
자식클래스의 객체 내부에는 부모클래스로 만든 객체가 포함되어있기 때문에
부모클래스의 참조변수로 자식클래스의 객체를 참조할 수 있음.
상속받았다면 자기자신의 타입 아니고 부모타입의 객체도 참조할 수 있다.
부모타입 변수명=new 자식타입();
객체 지향에서의 다형성
전제: 부모클래스스의 참조변수로 자식클래스의 객체를 참조할 수 있다.
(자식 클래스의 객체는 부모클래스로 만든 객체를 포함하기 때문에)
-부모 클래스의 참조변수로 자식클래스의 객체를 참조했을때, 부모 클래스에 존재하는 멤버에만 접근 가능함.
-부모클래스의 참조 변수로 자식클래스의 객체를 참조해서 부모 클래스에 존재하는 멤버함수 호출 시
자식클래스에서 해당 메소드를 오버라이딩 했다면 실제 호출되는 함수는
자식에서 오버라이딩 한 메소드가 호출됨 ( 동적 바인딩)
class Parent { ... }
class Child extends Parent { ... }
...
Parent pa = new Parent(); // 허용
Child ch = new Child(); // 허용
Parent pc = new Child(); // 허용
Child cp = new Parent(); // 오류 발생.
오버라
반응형
'자바 Java > 자바 공부 java study' 카테고리의 다른 글
인터페이스 (interface) (0) | 2020.03.12 |
---|---|
추상클래스(abstract class), 익명클래스(anonymous class) (0) | 2020.03.12 |
상속(Inheritance) (0) | 2020.03.11 |
toString() (0) | 2020.03.10 |
접근제한자[private,public,protected,default],getter, setter (0) | 2020.03.10 |