接口学习笔记

 

 

 

 接口和抽象类的选择

既然接口是一种特殊的抽象类,那么在开发中,何时选用接口?何时选用抽象类呢? 对于它们的选择,在开发中是一个很重要的问题,特别总结两句话给大家; A、优先选用接口 B、在既要定义子类的行为,又要为子类提供公共的功能时应选择抽象类。


 * 接口:定义形式
 * 可以把接口看做特殊的类
 * interface 接口名
 * {
 *   全局常量(public static final)
 *   抽象方法(public abstract)
 * }
 * 接口是可以多实现的:因为接口中的方法都是抽象的,都没有实现,在创建子类对象并调用该重写的抽象方法时很明确就是
 * 调用重写之后的方法,不会出现调用的不确定向
 * 
 * 接口解决了java单继承的问题
 */
interface inter{
	public static final int num=25;//public static final默认就有
	void show();//public abstract默认就有;接口中的方法都是抽象方法
}


interface inter2{
	public abstract void  fun();
}

class Test1 implements inter,inter2{
	@Override
	public void show() {
	 	System.out.println("show");
	}

	@Override
	public void fun() {
	 System.out.println("fun");
		
	}
}


public class Demo5{	
	public static void main(String[] args) {
		Test1 test1=new Test1();
		test1.show();
		test1.fun();
		//三种访问静态常量的方法
		System.out.println(test1.num);
		System.out.println(Test1.num);
		System.out.println(inter.num);
	}

}

================================================================================================

/*一个类在继承的同时还可以去实现接口】
 * 
 * 类和类之间是继承的关系
 * 类和接口之间是实现的关系
 * 
 * 通过继承可以得到该继承体系的基本功能
 * 通过实现接口可以得到继承体系之外的功能
 * 
 */

class Person{
	
}

interface inter{
	public final static int num=25;
	public abstract void show();
}

class Student extends Person implements inter{

	@Override
	public void show() {
	 
	}
	
}
/*
 * 接口和接口之间是继承的关系,而且可以多继承
 * 
 * interface inter1{}
 * 
 * interface inter2 extends inter2{}
 * 
 * interface inter3 extends inter1,inter2{}
 */

public class Demo5{
	
	public static void main(String[] args) {
		
	}
	
}

============================接口小实例

Usb接口

package Demo1;

public interface Usb {

	public void open();
	
	public void close();
 
	
}

Mouse

package Demo1;

public class Mouse implements Usb {

	public void open() {
		 System.out.println("Mouse open");

	}

	public void close() {
		 System.out.println("Mouse close");
	}

}

 

KeyBoard

package Demo1;

public class KeyBoard implements Usb{
	
	public void open(){
		System.out.println("keyboard open");
	}
 
	public void close(){
		System.out.println("keyboard close");
	}
	
 
}

NoteBook

package Demo1;

public class NoteBook {
	
	public NoteBook(){};
	
	public void run(){
		System.out.println("笔记本运行");
	}
	
	
	 //使用usb设备
	public void useUsb(Usb usb){
		usb.open();
		usb.close();
	}
	
	
	
}


Test

package Demo1;

public class Test {

	//笔记本运行
	//笔记本适使用键盘
	public static void main(String[] args) {
		NoteBook book=new NoteBook();
		book.run();
		KeyBoard board=new KeyBoard();
		
		book.useUsb(board);//Usb是个接口,想用哪个用哪个,这样方便
	}
	
	
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值