티스토리 뷰

JAVA

인터페이스의 타입변환 및 상속

Y.일월 2019. 9. 23. 17:46

인터페이스의 타입변환 및 상속


인터페이스는 클래스와 마찬가지로 상속이 가능하다.

클래스와 달리 인터페이스는 다중 상속이 가능하다.


다음은 인터페이스 상속의 예이다.


Person.java

public interface Person {

public void setName(String name);

public String getName();

}


Gender.java
public interface Gender {
public void setGender(boolean male);
public String getGender();
}

Student.java

public interface Student extends Person, Gender{

public void setSchool(String school);

public String getSchool();

}


ImplementStu.java
public class ImplementStu implements Student {
private String name;
private boolean male;
private String school;
private int studentNo;
@Override
public void setName(String name) {
// TODO Auto-generated method stub
this.name = name;
}

@Override
public String getName() {
// TODO Auto-generated method stub
return name;
}

@Override
public void setGender(boolean male) {
// TODO Auto-generated method stub
this.male = male;
}

@Override
public String getGender() {
// TODO Auto-generated method stub
if(male == true)
return "남자";
else
return "여자";
}

@Override
public void setSchool(String school) {
// TODO Auto-generated method stub
this.school = school;
}

@Override
public String getSchool() {
// TODO Auto-generated method stub
return school;
}

public void setStudentNo(int studentNo) {
this.studentNo = studentNo;
}
public int getStudentNo() {
return studentNo;
}

@Override
public String toString() {
return "ImplementStu [name=" + name + ", male=" + male + ", school=" + school + ", studentNo=" + studentNo
+ "]";
}

}

StudentEx.java
public class StudentEx {
public static void main(String[] args) {
ImplementStu stu = new ImplementStu();
stu.setName("일월");
stu.setGender(false);
stu.setSchool("학교");
stu.setStudentNo(16010010);
System.out.println(stu.toString());
}
}


Student.java에서 보이는것처럼 다중상속이 가능한 것이 인터페이스의 가장 큰 특징이다.

자바에서는 인터페이스의 타입변환 또한 가능하다.

클래스의 상속에서, 강제 타입변환, 자동 타입변환이 가능했다.

인터페이스에서도 마찬가지로 클래스의 타입변환처럼 상속관계에서의 타입변환이 가능하다.



'JAVA' 카테고리의 다른 글

에러(Error)와 예외(Exception)  (0) 2019.09.24
ArrayList와 Iterator를 이용한 성적관리 프로그램  (0) 2019.09.24
익명구현객체(Anonymous class)  (0) 2019.09.23
Mail Client  (0) 2019.09.23
인터페이스(Interface)  (0) 2019.09.20
공지사항
최근에 올라온 글