接口详细

  • 接口
    作用
    理解
    特性
  • 和抽象类的对比

==作用

由于JAVA是单继承,有局限性,而接口就解决了这个单继承问题

==理解

接口和抽象类有些许相似之处,所以接口可以被认为是一种特别的抽象类

==特性

1.接口不可以实例化对象,但可以向上/向下转型
2.接口里的方法都是抽象方法,可以不加abstract修饰
3.接口中的属性和方法的权限只有public

public interface A {
//private int num1=1;------->编译错误!修饰符应为public
public int num1=1//public int num2;------->编译报错!接口的变量必须进行复制
public int num2=1;
}

4.接口中的所有属性都是静态常量,在定义的时候必须进行赋值,否则会报错
5.接口可以直接继承,而且是多继承
6.接口不可以定义任何构造函数
7.一个类只能继承一个父类,但是可以同时实现多个接口
8.类实现接口以后,必须强制重写接口中的所有抽象方法,除非这个子类是抽象类

//Art接口
public interface Art {
	//抽象方法:弹钢琴
	public void piano();
}
//          student 是Person的子类    去实现接口Art
public class Student extends Person implements Art {
//这里只要连接了接口Art  就必须重写Art里的所有抽象方法
	//@Override
	public void piano() {	
	}
}

==关键字

interface:接口的声明
implements:接口的关键字

//A接口的声明
public interface A {}
//Test1连接接口A和B
public  class Test1 implements A,B {}

相同之处
1.都不可以实例化对象
2.可以包含抽象方法
3.定义好的抽象方法,要求子类强制重写,除非子类是抽象类

不同之处
1.抽象类用abstract修饰,接口用interface—>implements修饰
2.抽象类包含普通和抽象方法 ,接口所有的方法都是抽象方法

//接口A
public interface A {
//接口内只能有抽象方法
 public void Show(){}//-------->报错!
 public void Show();//-------->报错!
}

3.抽象类属性和方法的权限是四种,接口只能是public

//接口A
public interface A {
private int num1=1;//-------->报错!
protected int num2=1;//-------->报错!
default int num3=1;//-------->报错!
public int num4=1;//-------->正确!
}

4.抽象类里可以写构造函数 , 接口不可以包含构造函数

//接口A
public interface A {
//构造函数:在接口A里,有构造函数会报错!
 public A(){}//------->报错!
}

5.抽象类只支持单继承 , 接口可以多实现多继承
6.抽象类里的属性是最普通的属性 ,接口的属性只能是静态常量,而且必须赋值
7.接口的抽象方法不用abstract修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值