728x90 반응형 Java/기초21 [java 기초] 인터페이스와 다형성 인터페이스에 대한 설명은 아래 링크로! https://we1cometomeanings.tistory.com/22?category=947375 [java기초] 인터페이스 - 인터페이스만 준수하면 통합에 신경쓰지 않고, 다양한 형태로 새로운 클래스 개발 가능 - 클래스의 다중 상속 지원하지 않지만, 인터페이스로 다중 상속효과를 간접적으 we1cometomeanings.tistory.com 이번에는 인터페이스의 다형성과 관련해서 예제를 통해 알아볼 것이다. sound 메소드를 오버라이딩 해서 Dog는 "멍멍",Cuckoo는 "뻐꾹~" 소리가 나게 함으로써 다형성을 구현해주었다. 똑같은 makeSound 메서드여도 참조변수를 활용해 각기 다르게 소리를 낼 수 있게 구현할 수 있다. 2021. 6. 30. [java기초] 인터페이스 - 인터페이스만 준수하면 통합에 신경쓰지 않고, 다양한 형태로 새로운 클래스 개발 가능 - 클래스의 다중 상속 지원하지 않지만, 인터페이스로 다중 상속효과를 간접적으로 얻을 수 있다. 분류 인터페이스 추상클래스 구현 메서드 포함불가(단, 디폴트 메서드와 정적메서드는 예외) 포함가능 인스턴스 변수 포함 불가능 포함가능 다중상속 가능 불가능 디폴트 메서드 선언 가능 선언 불가능 생성자와 main() 선언 불가능 선언 가능 상속에서의 부모 인터페이스 인터페이스,추상 클래스 접근 범위 모든 멤버를 공개 추상메서드를 최소한 자식에게 공개 인터페이스는 인스턴스 생성 불가능, 생성자도 당연히 없음! interface 인터페이스 이름{ //상수이름 //abstract 메서드 //default 메서드 //static 메.. 2021. 6. 30. [java기초] 추상 메서드 - 메서드 본체를 완성하지 못한 메서드 , 무엇을 할지는 선언할 수 있지만 어떻게 할지는 정의할 수 없음 - 보통 하나 이상의 추상 메서드를 포함하지만 없을 수도 있음 - 주로 상속 계층에서 자식 멤버의 이름을 통일하기 위하여 사용 - new 로 인스턴스 생성 불가능 - 상속받은 자식클래스의 경우, 추상메서드를 반드시 구현해야한다. abstract class 클래스 이름 abstract 반환타입 메서드 이름(); --> 반드시 세미콜론으로 끝나야 하며, 메서드 본체가 없다 Circle 클래스의 draw 메서드의 경우, 부모 클래스에서 추상클래스였기때문에 자식클래스에서는 반드시 구현해줘야하고, findArea 메서드의 경우 오버라이딩 한 것을 알 수 있다. 2021. 6. 30. [java 기초] 타입변환과 다형성 - 참조타입 데이터도 기초타입 데이터 처럼 타입 변환 가능 - 상속 관계일 경우만 타입변환 가능 - 자동타입 변환과 강제 타입변환이 있다. p=s;는 사실상 (Person)s 와 같다. '학생은 사람이다' 가 가능하므로 위와 같은 형변환은 가능하다 이런 경우는 '사람은 학생이다' 가 되므로 형변환 불가능 하지만 이런식으로 코드를 작성하게 되면 부모타입의 변수이지만 자식 객체를 가리키므로 형변환이 가능하다. '변수 instnaceof 타입 ' 변수는 bool값을 반환한다. 자식객체이면 true, 아니면 false를 반환한다. 이 경우 true,true,false 가 된다 위의 코드는 downcast 함수를 추가 해봤다. downcast의 인자에 Student 타입의 참조변수 s를 넣어준다. downcast.. 2021. 6. 30. 이전 1 2 3 4 5 6 다음 728x90 반응형