인터페이스
- 추상클래스를 더 추상화시킨 구조.
- 구조 : 상수 + 추상메소드 + java8이후로 디폴트메소드와 static 메소드 도 추가가능
- 다중상속을 대체 . ( 인터페이스를 여러개 받을 수 있다. )
- implements 인터페이스명1, 인터페이스명2, .......
- 인터페이스도 동적바인딩이 가능
interface A{ //인터페이스는 상수와 추상메소드만 사용가능
final static int a=0; // 인터페이스에서는 final static 생략이 되어있음 memory를 아끼기 위해
public abstract void disp(); //앞에 abstract가 생략
}
interface B{ //인터페이스는 상수와 추상메소드만 사용가능
final static int a=0; // 인터페이스에서는 final static 생략이 되어있음 memory를 아끼기 위해
public abstract void disp1(); //앞에 abstract가 생략
}
interface C extends A,B{ //interface는 interface 끼리 extends 가능
final static int a=0; // 인터페이스에서는 final static 생략이 되어있음 memory를 아끼기 위해
public abstract void disp2(); //앞에 abstract가 생략
}
public class Day10 extends Object implements C{
@Override
public void disp() {
System.out.println("Inter");
}
public void disp1() {
System.out.println("Inter2");
}
public void disp2() {
System.out.println("Inter3");
}
public static void main(String[] args) {
A a=new Day10();
a.disp();
C b=(C)a;//new Day10();
b.disp();
b.disp1();
b.disp2();
}
}
* inner class
* - 클래스내에 또 다른 클래스를 구현
* - Outer class
* - Inner class
* - 종류
* 1. member inner class
* 2. static inner class
* 3. local inner class
* 4. anonymous inner class
*
* - outer의 멤버를 자유롭게 사용이 가능 멤버를 자유롭게 사용이 가능
* - outer 객체 생성후 inner 객체를 생성.
* 단, static은 outer를 생성하지 않고 사용.
public class InnerExam {
private int a;
private int b;
private static int c;
public InnerExam() {
a=1;
b=2;
c=3;
}
public void output() {
class LocalInner{ // local inner Class
public void disp() {
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
LocalInner li=new LocalInner();
li.disp();
}
class AInner{ //member inner Class
public void disp() {
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
public static void main(String[] args) {
//InnerExam e=new InnerExam();
//InnerExam.AInner a=e.new AInner();
//InnerExam.AInner a=new InnerExam().new AInner(); //한줄로 만들기
//a.disp();
InnerExam e=new InnerExam();
e.output();
}
}'Java기초' 카테고리의 다른 글
| [Java]Set<E> 성적관리 (0) | 2022.07.07 |
|---|---|
| [Java] List 성적관리 (0) | 2022.07.07 |
| [Java]동적바인딩 정적바인딩 (0) | 2022.07.05 |
| [JAVA] Class 관계 (has~ a) 포함오브젝트 활용 (0) | 2022.06.30 |
| [Java]클래스활용 성적관리프로그램(getter and setter)+has ~ a관계이해 (0) | 2022.06.28 |
댓글