java 接口的使用

一、基本概念

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

如果一个类只由抽象方法全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有

范例:定义一个接口

interface A{//定义一个接口

    public static final String MSG = "hello";//全局常量
    public abstract void print();//抽象方法
}

二、接口的使用

1、由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化。接口的使用原则如下: 
(1)接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口; 
(2)接口的子类(如果不是抽象类),那么必须要覆写接口中的全部抽象方法; 

(3)接口的对象可以利用子类对象的向上转型进行实例化。

package com.wz.interfacedemo;

interface A{//定义一个接口A

    public static final String MSG = "hello";//全局常量

    public abstract void print();//抽象方法
}

interface B{//定义一个接口B

    public abstract void get();
}

class X implements A,B{//X类实现了A和B两个接口

    @Override
    public void print() {
        System.out.println("接口A的抽象方法print()");
    }

    @Override
    public void get() {
        System.out.println("接口B的抽象方法get()");
    }

}

public class TestDemo {

    public static void main(String[] args){

        X x = new X();//实例化子类对象
        A a = x;//向上转型
        B b = x;//向上转型

        a.print();
        b.get();
    }

}

运行结果:

接口A的抽象方法print()

接口B的抽象方法get()

接口使用样例

定义具有开门、关门的功能的抽象类Door;其次,定义具备上锁、开锁的能力的接口Lock;再次,编写TheftproofDoor类

继承Door类同时实现Lock接口;最后,编写测试类输出如图所示的防盗门关门、上锁、开锁和开门效果。需要新增一个门铃

接口,接口中包含拍照方法;其次,在防盗门类中增加对该接口和方法的实现即可;最后,测试类输出如图所示的效果。

(注意:接口可以多实现)

定义一个抽象父类Door

public   abstract class Door {
  public abstract void opendoor();
  public abstract void closedoor();
}
定义上锁,开锁的接口:
public interface Lock {
    void openlock();
    void closelock();
}
定义门铃接口:
public interface Doorbell {
          void photograph();
}

定义子类TheftproofDoor类继承Door类和接口

public class TheftproofDoor extends Door implements Lock,Doorbell {

	@Override
	public void openlock() {
	 System.out.println("插进钥匙,向右拧三圈,锁开了");
	}

	@Override
	public void closelock() {
		 System.out.println("插进钥匙,向左拧三圈,锁关了");
	}

	@Override
	public void opendoor() {
       System.out.println("用力推,门开了");
       
	}

	@Override
	public void closedoor() {
		 System.out.println("轻轻拉门,门关上了");

	}

	@Override
	public void photograph() {
		 System.out.println("铃...咔嚓....照片以保存");
		 
		
	}

}

编写测试类:

public class Text {

	public static void main(String[] args) {
		 Door door=new TheftproofDoor();
		 if(door instanceof TheftproofDoor )
		 {
			 TheftproofDoor thedoor=(TheftproofDoor)door;
			 thedoor.photograph();
			 thedoor.openlock();
			 thedoor.opendoor();
			 thedoor.closelock();
			 thedoor.closedoor();
		 }
	}
}
输出:铃...咔嚓....照片以保存
插进钥匙,向右拧三圈,锁开了
用力推,门开了
插进钥匙,向左拧三圈,锁关了
轻轻拉门,门关上了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值