栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

java--接口

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java--接口

一个类只能继承一个类(单根继承),但是一个类可以实现多个接口,多个接口之间使用,分隔
 * 接口中的方法只能是抽象方法,默认修饰符都是public abstract
 * 一个类实现了一个接口,必须重写接口中的所有抽象方法,如果不重写,那么实现了类也要定义为抽象类
 * 接口不能实例化,但是可以将接口的引用指向其实现类实例
 * 接口的变量都是静态常量,默认修饰修饰public static final

代码示例:

防盗门实现门和锁的功能:

package cn.bdqn.demo02;

public interface Lock {

	// 定义锁“开锁”和“上锁”的功能
	public abstract void openLock();

	public abstract void closeLock();
	
}
package cn.bdqn.demo02;

public abstract class Door {
	
	//定义门的“开门”和“关门”功能
	public abstract void openDoor();
	
	public abstract void closeDoor();

}
package cn.bdqn.demo02;

public class AntiTheftDoor extends Door implements Lock,TakePhoto {

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

	}

	@Override
	public void closeDoor() {
		System.out.println("用力一拉,门关了......");

	}

	@Override
	public void openLock() {
		System.out.println("插入钥匙,左转3圈,锁开了......");
		
	}

	@Override
	public void closeLock() {
		System.out.println("插入钥匙,右转3圈,上锁了....");
		
	}

	@Override
	public void image() {
		System.out.println("咔嚓,请注意你的行为,已经拍照存档了......");
		
	}

}

USB风扇和USB鼠标实现USB功能:

package cn.bdqn.demo03;

public interface USB {
	
	//定义两个方法
	
	void electric();
	
	void data();
	
	

}
package cn.bdqn.demo03;

public class USBFengSan implements USB {

	@Override
	public void electric() {
		System.out.println("风扇获取电能,风扇开始运作....");

	}

	@Override
	public void data() {
		
		
	}

	public void qqqq(){
		System.out.println("我是风扇类中独有的方法");
	}

}
package cn.bdqn.demo03;

public class USBMouse implements USB {

	@Override
	public void electric() {
		System.out.println("鼠标获取电能,开始运作....");

	}

	@Override
	public void data() {
		System.out.println("获取数据传输能力,开始传输数据....");

	}
	
	public void test(){
		System.out.println("我是鼠标类中特有的方法");
	}

}

 接口不能实例化

接口的引用不能调用实现类中特有的方法,需要进行向下转型

package cn.bdqn.demo03;

public class Test {

	public static void main(String[] args) {
		// 接口不能实例化
		// USB usb = new USB();
		
		//直接通过接口的实现类构造方法创建对象
		USBFengSan usbf = new USBFengSan();
		usbf.electric();
		usbf.data();
		
		System.out.println("---------------");
		
		//通过向上转型创建实现类对象
		//向上转型:“父类(接口)的引用指向实现类的实例
		USB usb = new USBFengSan();
		usb.electric();
		
		usb = new USBMouse();
		usb.electric();
		//接口的引用不能调用实现类中特有的方法,需要进行向下转型
//		usb.test();
		//在向下转型过程中,容易出现类型转换异常
//		USBFengSan usbs = (USBFengSan)usb;
//		USBMouse usbm = (USBMouse)usb;
//		usbm.test();
		
		//可以使用instanceof关键字进行类型判断,避免异常
		if(usb instanceof USBFengSan){
			USBFengSan usbs = (USBFengSan)usb;
			usbs.qqqq();
		}else if(usb instanceof USBMouse){
			USBMouse usbm = (USBMouse)usb;
			usbm.test();
		}

	}

}
接口特性

接口不可以被实例化

实现类必须实现接口的所有方法

实现类可以实现多个接口 implements、多个接口使用逗号隔开

接口中的变量都是静态常量(public static final)

所有方法默认都是: public abstract

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1037031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号