728x90
반응형
"문자열 + 숫자"
파이썬은 에러지만 자바는 문자열로 이어준다.
이렇게 같은 문법에서 데이터 타입이 다를 때 어떻게 해야하는지를 명시하는 것이
polymorphism
4요소
- overloading : 하나의 함수가 데이터 타입따라 다른 기능을 가졌을 때 ex-operator
- parametric polymorphsim (=generics from ML) : type 자체를 변수로 만들 수 있음
- stack이라고 했을 때, 책을 쌓거나 상자를 쌓거나 동전을 쌓거나 에 대해 하나의 타입만으로 이들을 관리할 수 있도록
- public interface Stack<String> : Java에서는 Type Variable를 사용
- parameter coercion(numeric promotion): 강제 형 변환 ex- double x = 2 시 x는 2가 아닌 2.0
- widening conversion in JAVA : 작은 데이터 타입은 큰 데이터 타입으로 byte, short, char는 int로 변환됨
- 모호한 경우가 생길 수 있음: 입력값 'a'는 오버로딩 함수에서 int로 갈까 char로 갈까? -> ambiguous 에러로 인해 실행 불가능
- subtype polymorphism (overriding): 상속을 통한 동일 이름의 메소드
728x90
반응형
'CS > Programming Language' 카테고리의 다른 글
Expression (0) | 2022.11.21 |
---|---|
Stack Memory (0) | 2022.11.20 |
Semantics Analyzer : Type (0) | 2022.11.11 |
ML: Higher-order Functions (0) | 2022.11.11 |
ML: Semantics - "Types", Polymorphism, Scope (0) | 2022.11.10 |