분류 전체보기 (145) 썸네일형 리스트형 [ JAVA ] 클래스 고급 - 인터페이스(Interface) ⑤ //● 실습문제 //성적 처리 프로그램을 구현한다, //단, 인터페이스를 활용할 수 있도록 한다, //실행 예) //인원 수 입력(1~10) :2 // 1번째 학생의 학번 이름 입력(공백 구분) : 20152345 박민지 // 국어 영어 수학 점수 입력 (공백 구분) : 90 100 85 // 2번째 학생의 학번 이름 입력(공백 구분) : 20152344 김서현 // 국어 영어 수학 점수 입력 (공백 구분) : 85 70 65 // 20152345 박민지 90 100 85 275 91 // 수 수 우 // 20152344 김서현 85 70 65 220 73 // 우 미 양 // 계속하려면 아무 키나... // 90 ~ 100 : 수 // 80 ~ 89 : 우 // 70 ~ 79 : 미 // 60 ~ 69.. [ JAVA ] 클래스 고급 - 인터페이스(Interface) ④ ※ extends VS implements 클래스 extends 클래스 클래스 extends 추상클래스 인터페이스 extends 인터페이스 인터페이스 extends 인터페이스, 인터페이스 추상클래스 implements 인터페이스 추상클래스 implements 인터페이스. 인터페이스 클래스 implements 인터페이스 클래스 implements 인터페이스, 인터페이스 추상클래스 extends 추상클래스 추상클래스 extends 클래스 ※ 인터페이스는 클래스와는 달리 다중 상속이 가능하며 인터페이스 자체도 상속된다. ※ 인터페이스의 멤버 변수인 데이터는 접근제어지시자나 기타제어자를 명시하지 않아도 기본 상 (primitive constant)인 static final의 변경자로 설정된다. 클래스에서 인터페.. [ JAVA ] 클래스 고급 - 인터페이스(Interface) ③ //인터페이스 interface Demo { public void write(); } //클래스 //class DemoImpl // //인터페이스를 구현하는 추상 클래스 //abstract class DemoImpl implements Demo // class DemoImpl implements Demo { @Override public void write() { System.out.println("write() 메소드 재정의..."); } //public void print(); } //클래스 //class DemoImplSub // // 추상 클래스를 상속받은 추상 클래 //abstract class DemoImplSub extends DemoImpl class DemoImplSub extends D.. [ JAVA ] 클래스 고급 - 인터페이스(Interface) ② //인터페이스 interface ADemo { public void write(); } //인터페이스 interface BDemo { public void print(); } //클래스 //class DemoImpl // 두 인터페이스를 구현하는 추상 클래스 //abstract class DemoImpl implements ADemo, BDemo //두 인터페이스를 구현하는 클래스 class DemoImpl implements ADemo, BDemo // ◈ 두 개의 인터페이스를 상속하고 있음 { // JDK 1.5(5.0)에서는 인터페이스 메소드를 오버라이딩 할 때 @Override 어노테이션을 사용할 수 없다 // JDK 1.6 이후부터 적용 가능한 문법이다. // (클래스에서 쓰는 것은 1.5부터,.. [ JAVA ] 클래스 고급 - 인터페이스(Interface) ● 인터페이스(Interface)란 완전히 미완성된 채로 남겨져 인터페이스 안에 존재하는 그 어떤 메소드도 몸체(정의부)가 없기 때문에 실행 부분이 존재하지 않는다. 클래스를 위한 템플릿으로써의 기능을 수행하는 추상클래스의 한 종류이다. ● 인터페이스는 클래스와 달리 다중 상속이 가능하며 인터페이스 자체도 상속된다. 기존의 C++언어 등에서 지원되는 다중 상속이 사용 과정에서 많은 문제점들을 노출시켰기 때문에 자바에서는 다중 상속의 개념을 인터페이스라는 개념으로 변형하여 인터페이스를 통해 다중 상속을 구현하는 방법을 지원한다. ● 인터페이스는 상수와 추상 메소드만 가질 수 있으며 인터페이스 안의 메소드들은 접근제어지시자를 명시하지 않아도 『public』 으로 설정되어 클래스에서 구현(implements).. [ JAVA ] 클래스 고급 - 상속 관계에 있는 클래스들 간의 캐스팅 ( 업 캐스팅, 다운 캐스팅 ) // 상위 클래스=부모클래스 class SuperTest111 { public int a=10 , b=20; public void write() { System.out.println("SuperClass write() 메소드,,,"); } public int hap() { return a+b; } } //하위 클래스 = 자식 클래스 class SubTest111 extends SuperTest111 { public int b=100 , c=200; @Override //c까지 더하도록 재정의 public int hap() { return a+b+c; } public void print() { System.out.println("서브클래스 print() 메소드"); } } // main() 메소드를 포함하.. [ JAVA ] 클래스 고급 - 추상 클래스 (Abstract) ● 추상 클래스(Abstract Class)는 선언만 있고 정의가 없는 하나 이상의 메소드(추상메소드)를 갖는 클래스로 하위 클래스에서 오버라이딩(Overriding)할 것으로 예상되는 메소드에 대해 메모리 낭비 없이 미리 호출 계획을 세워두기 위해 만든다. ● 형식 및 구조 [ 접근제어지시자 ] abstract class 클래스명 { [ 접근제어지시자 ] abstract 자료형 메소드명([매개변수], ....) } ● 특징 클래스가 적어도 하나 이상의 추상 메소드를 포함할 때 그 클래스는 클래스 이름 앞에 『abstract』 키워드를 붙여 추상 클래스로 명시해야 하며, 추상 클래스로 명시해서 선언한 경우에는 불완전한 형태의 클래스이므로 객체를 생성할 수 없다. 추상 메소드가 존재하지 않는 추상 클래스마.. [ JAVA ] 클래스 고급 - 상속 (Inheritance) ④ ※ 메소드 오버라이딩 (Method Overriding)의 특징 - 메소드 이름, 리턴 타임, 파라미터 수나 타입이 완전히 일치해야 한다. - 반드시 상속 관계가 있어야 한다. - 재정의된 하위 클래스의 메소드 접근제어지시자는 상위 클레스의 메소드 접근제어지시자 보다 범위가 크거나 같아야 한다. 예를 들어 상위 클래스 메소드의 접근제어지시자가 『protected 인 경우 하위 클래스가 이 메소드를 오버라이딩(Overriding) 하는 경우 접근 제어 지시자는 『protected』 또는 『public』 이어야 한다. - 『static』 『final』 『private』 메소드는 오버라이딩(Overriding) 할 수 없다. - Exception 의 추가가 불가능하다 즉 , 상위클래스의 메소드가 가지고 있는 .. 이전 1 ··· 9 10 11 12 13 14 15 ··· 19 다음