interface Addin{
public int add(int a, int b); // abstract가 생략됨
public int add(int a);
/// 메소드 오버로딩
default void pr(){ // deafault를 붙였으므로 추상메소드가 아님!
System.out.println("희희");
}
}
class Add implements Addin{
public int add(int a, int b) {
return a+b;
}
public int add(int a) {
int sum=0;
for(int i=1;i<=a;i++) {
sum+=i;
}
return sum;
}
}
public class mmdd0229 {
public static void main(String[] args) {
Add a=new Add();
System.out.println(a.add(1,4));
System.out.println(a.add(10));
//Addin a=new Addin();
}
}
예시1)
interface Animal{
public void bear();
}
interface Fish{
public void swim();
}
class A implements Animal, Fish{ //다중상속
@Override
public void bear(){
System.out.println("낳는다");
}
@Override
public void swim() {
System.out.println("수영한다");
}
}
public class mmdd0229 {
public static void main(String[] args) {
A a = new A();
a.bear();
a.swim();
}
}
예시2)
interface Po{
public void pr(int a, String b);
public void pr(String b);
}
class Point implements Po{
@Override
public void pr(int a, String b){
System.out.println(b+"는 "+a+"원 입니다.");
}
@Override
public void pr(String b){
System.out.println(b);
}
}
public class mmdd0229 {
public static void main(String[] args) {
Po p=new Point();
p.pr(30000,"java");
p.pr("python"); }
//실행 결과) java책은30000원
// python
}
예시3)
interface A{
public void funcA();//추상 메소드
}
interface B{
public void funcB();//추상 메소드
}
interface C extends A,B{ //다중상속
public void funcC();//추상 메소드
}
class D implements C{
@Override
public void funcA() {
System.out.println("funcA");
}
@Override
public void funcB() {
System.out.println("funcB");
}
@Override
public void funcC() {
System.out.println("funcC");
}
}
public class test {
public static void main(String[] args) {
D d1=new D();
A a1=d1; //업캐스팅
a1.funcA();
B b1=d1; //업캐스팅
b1.funcB();
C c1=d1; //업캐스팅
c1.funcA();
c1.funcB();
c1.funcC();
}
}
다중상속일때 (인터페이스 2개 이상일때!)
public class Classname implements interfaceA, interfaceB
public interface 자식interface extends 부모interface1, 부모interface2
class Tv{
public void on() {
System.out.println("티비 켬");
}
}
interface Computer{
public void m();
}
class Com{
public void m() {
System.out.println("컴");
}
}
class Ipad extends Tv implements Computer{
Com c=new Com();
@Override
public void m() {
c.m(); //System.out.println("컴");
}
public void ip() {
m(); //컴
on(); //티비 켬
}
}
public class test {
public static void main(String[] args) {
Ipad i=new Ipad();
Tv t=i; //up
Computer c=i;//up
i.ip();
}
}
인터페이스 함수
interface Food{
public String name();
}
class Pizza implements Food{
@Override
public String name(){
return "피자";
}
}
class Steak implements Food{
@Override
public String name(){
return "스테이크";
}
}
public class test {
static void pr(Food f) {
System.out.println(f.name());
}
public static void main(String[] args) {
pr(new Pizza()); //Food f=new Pizza();
pr(new Steak()); //Food f=new Steak();
}
}