java 接口

/*部分内容来自网络*/

初期理解,可以认为是一个特殊的抽象类。当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

class用来定义类,而interface用来定义接口。

接口定义时,格式特点:
(1)接口中常见定义:常量、抽象方法。
(2)接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
记住:接口中的成员都是public的

接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口的抽象方法全部覆盖后,子类才可以实例化。否则子类是一个抽象类。

接口可以允许多实现,即一个类可以实现多个接口。而子类不能继承多个父类。
原因如下:
(1)接口中的方法都是抽象的方法,没有方法体,即使子类实现的多个接口中有相同的抽象方法,也没有关系,因为没有方法体,抽象方法是无意义的。在子类中实现时直接重写抽象方法就可以覆盖所有重名的抽象方法。
(2)子类如果继承多个父类,多个父类中可能出现同名的非抽象方法,在调用父类方法时,不知道要调用哪一个,会出现异常。所以java不允许多继承。
但是java允许多实现。

类与类之间是继承关系(不支持多继承)
类与接口之间是实现关系(支持多实现)
接口与接口之间是继承关系(支持多继承)


基本功能(基本方法)定义在类中,扩展功能定义在接口中。

class Fu
{
	private String name;
	private double pay;
	Fu(String name,double pay)
	{
		this.name=name;
		this.pay=pay;
	}
	public void show()
	{
		System.out.println("hello");
	}
}
interface Inter
{
	public static final String name="john";//接口中的变量全部用public static final来修饰
	public abstract void show();//接口中的方法全部用public abstract来修饰
	public abstract void show2();//接口中的方法全部为抽象方法(这一点是与抽象类的不同之处),接口是一种特殊的抽象类。
}
interface Inter2
{
	public abstract void show();
	public abstract void show1();
}
class InterfaceDemo extends Fu implements Inter,Inter2
{
	private String num;
	InterfaceDemo(String name,double pay,String num)
	{
		super(name,pay);
		this.num=num;
	}
	public void show()
	{
		System.out.println(this.name+"\n"+this.num);
	}
	public void show2()
	{
		System.out.print(this.pay);
	}
	public void show1(){}
	public static void main(String args[])
	{
		InterfaceDemo demo=new InterfaceDemo();
		demo.InterfaceDemo("john",3456,"123");
		demo.show();
		demo.show2();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值