Java中的接口

在java中,类与类之间只能单继承,不能多继承,实际需要多继承,所以需要接口。

接口里不包含普通方法,只有抽象方法。和抽象类一样,接口是从多个相似类中抽象出来的,和抽象类的区别是接口只是规范,不提供任何实现。

接口定义的是多个类公用的行为规范,通常是一种公用方法。

定义接口时不使用class关键字,而是使用interface关键字

说明:

l  修饰符若是public,说明接口可以被任何其他接口或类访问;修饰符若是默认的,说明接口只能被同一包中的其他接口或类访问。

l  接口的名称可以是任意有效的标识符

l  接口中的成员变量都是共有的、静态的、最终的常量

l  接口中的方法都是公共的、抽象的方法,仅有方法标签,没有方法体

l  接口可以继承,子接口可以继承父接口的属性和方法。Java接口的继承与类的继承不同,接口支持多继承,多个父接口之间用逗号分隔。

public interface Figure {

	double PI=3.14;
	void area();
}

public class Circle implements Figure {
	double radius;
    public Circle(double r) {
		
		radius=r;
	}
	public void area() {
		System.out.println("圆的面积="+PI*radius*radius);
	}
}

public class Renctangle implements Figure {
	double width,height;
	public Renctangle(double w,double h) {
		width=w;
		height=h;
	}
	public void area() {
		System.out.println("矩形的面积="+width*height);	
	}
}

public class Test {

	public static void main(String[] args) {
		Circle c=new Circle(10.0);
		c.area();
		Renctangle rect=new Renctangle(10.0,5.0);
		rect.area();
	}

}

接口和抽象类的异同:

相同:

接口和抽象类都不能被实例化,他们都位于继承树的顶端,用于被其他类实现和继承

接口和抽象类都可以包含抽象方法,实现接口或抽象类的普通子类都必须实现这些抽象方法(即子接口扩展某个父接口,将会获得父接口里定义的所有抽象方法、常量属性、内部类和枚举类定义)

不同:

接口里只能包含抽象方法,不包含已经实现的方法;抽象类中则完全可以包含普通方法;

接口里不能定义静态方法;抽象类里可以定义静态方法

接口里只能定义静态常量属性,不能定义普通属性;而抽象类里既可以定义普通属性,也可以定义静态常量属性

接口不包含构造方法;抽象类里可以包含构造方法,但并不是用于创建对象,而是让其子类调用这些构造方法来完成属于抽象类的初始化操作

接口里不能包含初始化块;抽象类完全可以包含初始化块

一个类最多只能有一个直接父类,包括抽象类;但一个类中可以直接可以直接实现多个接口,通过这些接口弥补java单继承方面的不足。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值