接口

interface Iwalkable{
	public abstract void walk();
}

interface Iswimable{
	void swim();//相当于public abstract void swim();
}

//接口的继承
interface Iampable extends Iwalkable,Iswimable{

}

class Animal{
	String name;
	String color;
}

//接口的实现关系有时候相当于继承关系
class Dat extends Animal implements Iswimable{
	//覆盖时方法权限要比父类大
	public void swim(){
		System.out.println("cat---swim");
	}
}

public class InterfaceClass {
	public static void main(String[] args) {
		Iswimable dat = new Dat();//面向接口编程
		dat.swim();//多态运行时表现出的是子类的特征
	}
}

 

步骤:定义接口--->定义接口实现类--->创建对象

1、接口定义:

interface  接口名称 { }

接口是一种特殊的抽象类,如果没有方法前加abstract,会在编译时自动添加(所以abstract可以省略)。

例如:void eat();----->public abstract void eat();

2、接口注意点:

  1. 接口中没有构造器,不能创建对象
  2. 接口中可以定义变量,都是全局静态常量(一般很少这样使用)
  3. 接口中定义的方法都是公共的抽象方法
  4. 接口中可以定义内部类,内部类也是public abstract
  5. 接口可以实现多继承,而普通类不可以
  6. 接口继承时不必覆盖父接口的方法

3、接口继承:extends

interface 接口名称 extends 继承的接口名,继承的接口名

4、接口的实现:

class 类名 implements 接口名(接口可以有多个)

在实现类中必须要覆盖接口中的方法。

5、接口与抽象的区别:

相同点:

  1. 都是被其他类实现或者被继承
  2. 都不能实例化
  3. 都可以定义抽象方法,定义的抽象方法子类都要被覆盖

不同点:

  1. 接口中没有构造器;抽象类中有
  2. 接口中只能有抽象方法;抽象类可以包含普通方法(带有方法体)和抽象方法
  3. 接口中成员变量:public static final 变量(静态常量);抽象类中,默认权限
  4. 接口中默认方法:public abstract 方法名;抽象类中,默认权限

6、面向接口编程:把实现类对象赋值给接口类型的变量的过程

Iswimable dat = new Dat();//面向接口编程

实现通用编程

package test;
interface IUSB{
	void swapData();
}

//主板
class MouseBoard{
	void PluginIn(IUSB u){
		u.swapData();
	}
}

//鼠标
class Mouse implements IUSB{
	public void swapData(){
		System.out.println("mouse");
	}
}

//键盘
class KeyBoard implements IUSB{
	public void swapData(){
		System.out.println("print");
	}
}

public class InterfaceClass {
	public static void main(String[] args) {
		IUSB m = new Mouse();
		IUSB d = new KeyBoard();
		
		MouseBoard b = new MouseBoard();
		b.PluginIn(d);
		b.PluginIn(m);	
	}
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值