第六周 接口与抽象类

导航

1.接口语法与注意事项
2.接口支持多重继承
3.类调用接口的语法
4.接口也是一种类,也可以产生对象,接口的多态性
5.适配器类
6.抽象类定义与用法

————————————————————————————————————————

1.接口语法与注意事项

接口的语法:

[abstract] interface 接口名 {
		[public][abstract] 返回类型   
		方法名(参1,参2) 
}

注意:

1.没有方法体,static方法也不能用,默认是publicabstract
2.接口中无成员变量,无构造器,不能用接口创建对象
3.接口中的所有方法都是抽像方法,默认也是abstract


2.接口支持多重继承

[abstract] interface 接口名 extends 接口1,接口2{
}

3.类调用接口的语法

class 类名 implements 接口1,接口2{
}

注意点

1.类中必须实现接口中的所有方法,否则就会有编译错误
2.继承后方法的访问修饰符必须强于父类中的方法修饰符,并且继承类必须使用public修饰

例子

 //接口
interface IBiz{  
		void change();
		boolean withdraw(double amount);
}

//父类
class ClsA{
}

//插入接口实现,不影响父类
class clsB extends ClsA implements IBiz{ 
		public void change(){
		}
		public boolean withdraw(double amount){
		}
}

例子来看,类调用接口时必须将接口中功能都实现
若想选取部分功能实现,就要使用抽象类 往下看把

应当有契约性与稳定性

4.接口也是一种类,也可以产生对象,接口的多态性

但是只能使用自己接口中的方法,其他父类与接口方法隐藏

举例:(能够产生对象)

class clsA implements IBiz,IDao{
}
IBiz obiz = new clsA(); //只能调用自己接口的方法

举例:接口的多态性

接口
interface IBiz{
	void charge();
}

class ClsA implements IBiz{
	public void change(){
		对应实现的方法
	}
}
class ClsB implements IBiz{
	public void change(){
        对应实现的方法
	}
}

class ClsCall{
	static public void call(IBiz biz){   //传的是接口的参数
			biz.charge();  //biz只能使用自己接口中的功能
	}
}

改变不同的实现,不影响ClsCall
接着进行调用上面的

IBiz obiz = new ClsA();
ClsCall.call(obiz);

charge调用结果根据AB两个都不同


5.适配器类

方法作用:

1.实现接口,并对接口中的接口方法提供空实现
2.空实现就是有方法体,但方法体中不提供有效的代码

举例子:

接口
interface IBiz{
	void charge();
	boolean withdraw(double amount)
}

适配器
class BizAdapter implements IBiz{
		public void charge(){}
		public boolean withdraw(double amount){
					return false;
		}
}

class Bizlmpl extends BizAdapter{
		public void charge(){
			实现
		}
}

使用适配器有什么好处呢?
创建一个类并且继承这个继承器,就可以使用其中的方法了,可以随意调用几个方法。


6.抽象类定义与用法

介于接口与类之间的概念

1.使用abstract修饰,并且其中的方法也要使用abstract修饰
2.可以有构造器,但是不能在new后使用抽象类构造器,也就是说抽象类不能创建对象

最主要就是使用抽象类调用接口时,就不需要实现所有接口的方法

举例子:

接口
interface IBiz{
	void charge();
	boolean withdraw(double amount);
}
抽象类
abstract class ClsA implements IBiz{
	public boolean withdraw(double amount){
	}
}

抽象方法与其他成员方法与变量有关联使用抽象类否则使用接口

                                                           可以一起交流讨论学习:qq群891507813
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章