자바의 인터페이스 개념이 궁금하다면 아래 내용부터 확인.
클래스와 인터페이스 상속
- class C extends A implements B
- 인터페이스를 여러 개 가지는 경우
class C extends A implements B, D
class A
{
String title;
public A(String title)
{
this.title = title;
}
public void info()
{
System.out.println(title);
}
}
interface B
{
int year = 2018;
public void pro();
}
class C extends A implements B
{
public C(String title)
{
super(title);
}
public void pro()
{
System.out.println(year);
}
}
class InterfaceTest01
{
public static void main(String[] args)
{
C test = new C("Fun Fun Java");
System.out.println(test.title);
test.pro();
}
}
(결과값)
Fun Fun Java
2018
ㅇ 위의 예제에서 상속 받은 변수의 값 변경하기
class A
{
String title;
public A(String title)
{
this.title = title;
}
public void info()
{
System.out.println(title);
}
}
interface B
{
int year = 2018;
public void pro();
}
class C extends A implements B
{
public C(String title)
{
super(title);
}
public void pro()
{
System.out.println(year);
}
}
class InterfaceTest01
{
public static void main(String[] args)
{
C test = new C("Fun Fun Java");
System.out.println(test.title);
test.pro();
test.title="Exciting Java";
System.out.println(test.title);
}
}
(결과값)
Fun Fun Java
2018
Exciting Java
ㅇ 인터페이스의 멤버변수는 상수로 변경이 불가능 하다.
- final이 생략된 것이다.
- 만약 변경하고자 하는 경우 아래 처럼 오류가 발생한다.
class A
{
String title;
public A(String title)
{
this.title = title;
}
public void info()
{
System.out.println(title);
}
}
interface B
{
int year = 2018;
public void pro();
}
class C extends A implements B
{
public C(String title)
{
super(title);
}
public void pro()
{
System.out.println(year);
}
}
class InterfaceTest01
{
public static void main(String[] args)
{
C test = new C("Fun Fun Java");
System.out.println(test.title);
test.pro();
test.title="Exciting Java";
System.out.println(test.title);
test.year = 2019;
System.out.println(test.year);
}
}
(결과값)
InterfaceTest01.java:45: error: cannot assign a value to final variable year
test.year = 2019;
^
1 error
반응형
'Java | spring > 자바 객체지향' 카테고리의 다른 글
Java Interface 인터페이스 개념잡기! (0) | 2019.05.07 |
---|---|
Java 프로그래밍 기본, 메소드 method (0) | 2019.05.07 |
구현되지 않은, 추상클래스(abstract class) (0) | 2019.05.07 |
Java Class 구조, 접근명시자(static, public) (0) | 2019.05.07 |
상속과 다형성, 오버라이딩?! 오버로딩?! (0) | 2019.05.07 |
댓글