2019. 10. 8. 09:52
abstract A {
int member;
abstract int method();
A(){sysout("나는 추상클래스의 생성자")};
void method1 (int a)
{
sysout(a);
}
}
class B extends A {
@override //<-----------------------
int method()
{
return member;
}
//B(){super();}
}
public static void main(String[] args)
{
A a = new B();
a.method1(100);
System.out.println(a.method());
}
abstract 클래스인 A는 미완성 클래스로 객체 생성 x
따라서 사용을 위해서는 상속을 통해서 인데
class B에서 추상클래서 A를 상속하고 미완성된 클래스를 재정의 하여 사용하는 것으로
사용
interface MyInter {
double PI = 3.14; //멤버변수가 아닌 상수
//모든 메서드들이 abstract 일때 인터페이스로 정의 함
abstract void method1();//추상메서드 = 정의 부분이 없는 메서드
int method2(); //abstract 가 생략되어 있음
void method3(int a);
}
abstract A {
int member;
abstract int method();
A(){sysout("나는 추상클래스의 생성자")};
void method1 (int a)
{
sysout(a);
}
}
class B extends A {
@override //<-----------------------
int method()
{
return member;
}
//B(){super();}
}
class C implements MyInter {
//MyInter에 있는 추상 메서드 3개를 재정의 해주어야한다
//구현을 다 안해주면 오류가남
@Override
public void method1()
{
System.out.println("인터페이스 메서드1 재정의");
}
@Override
public int method2() {
return 0;
}
@Override
public int method2() {
}
}
public static void main(String[] args)
{
A a = new B();
a.method1(100);
System.out.println(a.method());
// (X) MyInter inter = new MyInter();
// 인터페이스를 구현하여 사용 extends -> implements
MyInter inter = new C();
}
'JAVA' 카테고리의 다른 글
[JAVA] 읽으면서 정리하기 (0) | 2019.11.10 |
---|---|
추상클래스 (0) | 2019.10.30 |
JVM 메모리구조/인스턴스 변수 / 멤버 변수 (0) | 2019.09.05 |
인스턴스 생성/인스턴스 변수/클래스 변수 (0) | 2019.09.04 |
클래스와 객체 (0) | 2019.09.03 |