반응형 개발자72 자바(Java) - 타입 변환과 다형성 다형성을 구현하기 위해서는 메소드 재정의와 타입 변환이 필요하다. 인터페이스 역시 이 두가지 기능이 제공되므로 상속과 더불어 다형성을 구현하는데 많이 사용된다. 상속은 같은 종류의 하위 클래스를 만드는 기술이고, 인터페이스는 사용방법이 동일한 클래스를 만드는 기술 이다. 개념상 차이는 있지만 상속과 인터페이스 둘 다 다형성을 구현하는 방법은 비슷하다. 인터페이스의 다형성 인터페이스 사용 방법은 동일하지만 구현 객체를 교체하여 프로그램 실행 결과를 다양하게 할 수 있다. 자동 타입 변환 (promotion) 구현 객체가 인터페이스 타입으로 변환되는 것이다. 구현 객체와 자식 객체는 인터페이스 타입으로 자동 타입 변환이 된다. 인터페이스 변수 = 구현객체; //구현객체가 인터페이스 타입으로 변환 필드의 다형.. 2020. 11. 17. 자바(Java) - 인터페이스 자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. 인터페이스를 통해 다형성을 구현할 수 있다. 인터페이스(interface) 개발 코드는 인터페이스를 통해서 객체와 서로 통신한다. 인터페이스의 메소드를 호출하면 객체의 메소드가 호출된다. 개발 코드를 수정하지 않으면서 객체 교환이 가능하다. 인터페이스 선언 ~.java 형태 소스 파일로 작성되고, 컴파일러를 통해 ~.class 형태로 컴파일 된다. 클래스와 물리저거 파일 형태는 같으나 소스 작성 내용이 다르다. [public] interface 인터페이스이름 { ... } 인터페이스는 객체로 생성할 수 없으므로 생성자를 가질 수 없다. interface 인테페이스 이름 { /.. 2020. 11. 16. 자바(Java) - 추상 클래스 사전적 의미로 추상(abstract)는 실체 간에 공통되는 특성을 추출한 것을 말한다. 클래스에서도 추상 클래스가 존재한다. 추상 클래스 클래스들의 공통적인 특성을 추출해서 선언한 클래스 실체 클래스(객체 생성용 클래스)들의 공통적인 특성(필드, 메소드)을 추출하여 선언한 것이다. 추상클래스와 실체 클래스는 상속의 관계를 갖고 있다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성을 갖을 수 있다. 추상 클래스의 용도 실체 클래스에 반드시 존재해야할 필드와 메소드의 선언(실체 클래스의 설계 규격-객체생성용이 아니다) 실체 클래스에는 공통된 내용은 빠르게 물려받고, 다른 점만 선언하면 되므로 시간 절약을 할 수 있다. 공통된 필드와 메.. 2020. 11. 9. 자바(Java) - 강제 타입 변환 강제 타입 변환(casting) 부모 타입을 자식 타입으로 변환 하는 것 자식 타입이 부모 타입으로 자동 타입 변환 후 다시 자식 타입으로 변환할 때 강제 타입 변환을 사용 할 수 있다. 자식타입 변수 = (자식타입) 부모타입; 부모 타입을 자식 타입으로 변환 Parent parent = new Child();//자동 타입 변환 Child child = (Child) parent;//강제 타입 변환 예시1) 강제 타입 변환 부모 클래스 public class Parent { public String field1; public void method1() { System.out.println("Parent-method1()"); } public void method2() { System.out.println.. 2020. 11. 5. 자바(Java) - 필드의 다형성 다형성 2020. 11. 5. 자바(Java) - 상속3 (메소드 재정의) 자바 프로그램을 개발할때 가장 중요한 기술적인 요소 중 하나인 메소드 재정의 이다. 메소드 재정의(오버라이딩 overriding) 부모 클래스의 메소드가 자식 클래스에서 사용하기에 부적합할 경우 클래스에서 수정하여 사용 한는 것이다. 메소드 재정의 방법 부모의 메소드와 동일한 시그니처(리턴타입, 메소드 이름, 매개 변수 목록)를 가져야 한다. 접근 제한을 더 강하게 재정의할 수 없다.(접근제한자) 새로운 예외(Exception)를 throws할 수 없다. 메소드가 재정의될 경우 부모 객체 메소드는 숨겨지기 때문에, 자식 객체에서 메소드를 호출하면 재정의된 자식 메소드가 호출 된다. 예시1) 부모 클래스 public class Calculator { double areaCircle(double r) { S.. 2020. 11. 2. 이전 1 2 3 4 5 6 7 ··· 12 다음 728x90 반응형 LIST