(八)java接口和抽象类的定义

(八)java接口和抽象类的定义

接口

1. 接口定义
接口就是众多方法的集合,不过它没有方法的实现。可以有常量,是常量不是变量。因为不是类,没有构造方法,且不能被实例化。关键字interface。
定义一个接口,代码如下:

public interface I1 {
	 double PI=3.14; //final关键字被省略了
	public void add();
}

2. 接口继承接口
接口可以继承接口,和类类似使用extends关键词,但是接口可以实现多重继承。

public interface I3 extends I1,I2 {
}

3. 接口的实现
接口可以被类实现,关键词implements。一个类可以实现多个接口,但是在类中必须实现接口中的所有的方法。否则这个类只能声明为抽象类 。
例子如下:

public class I3Imp implements I3 {
	//I3imp 实现了接口I3 需要实现I3的所以方法
	@Override
	public void add() {
	}
	@Override
	public void add2() {
	}
}

抽象类

1. 抽象方法定义
只有方法名,而没有方法体的方法,使用关键词abstract修饰。

//抽象方法:只有方法名,而没有方法体
	public abstract void absFun();

2. 抽象类的定义
含有抽象方法的类叫做抽象类,类前用abstract修饰。抽象类不能被实例化,抽象方法必须在子类中被实现,否则该子类只能声明为abstract。

/** 
* 类说明 :抽象类的使用
* 定义:是抽象方法和非抽象方法的集合,被子类继承后,子类需要实现父类的抽象方法
* 特殊情况:
* 方法全部为抽象方法,就使用接口替代抽象方法
* 方法全部为普通方法,就使用普通类
*/
public abstract class Abstractdemo01 {
	//抽象类可以用属性,普通方法
	int i;
	static final int count =1;
	private String name;
	//普通方法
	public void fun() {
		System.out.println("抽象类的普通方法");
	}
	//抽象方法:只有方法名,而没有方法体
	public abstract void absFun();
	public abstract int absFun1();
}

3. 那些情况下类需要声明为抽象类?
①当一个类的一个或多个方法是抽象方法时;
②抽象类的子类,但是没有实现父类的所有抽象方法, 即只实现部分;
③当一个类实现一个接口,并且不能为全部抽象方法都提供实现时;

4. 抽象类与普通类的区别?
抽象类就是比普通类的方法多了一个抽象方法,在声明上多加了一个abstract关键字。且抽象类无法被实例化,只能被继承。其他的都和普通类没得区别!

抽象类与接口的区别?
①抽象类中可以有变量和普通的方法。而接口中只能有常量和未被实现的方法。
②类可以实现多个接口,但是只能继承一个抽象类。同理,接口可以继承多个接口,而抽象类只能继承一个抽象类。
③抽象类与接口一样,不可以实例化,必须借助继承他的子类进行实例化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值