抽象类和接口

抽象类和接口

抽象方法:是一种只有声明没有具体实现的方法。
抽象类:就是包含抽象方法的类,它存在意义就是为了继承,抽象类自己本身不可以new 对象。当然你也可以定义一个抽象类,但是里面一个抽象方法都没有(闲的蛋疼)。
接口:包含变量和方法,变量会被隐式指定为public static final 方法会被隐式指定为public abstract
如果类实现了一个接口,那就必须要实现这个接口的方法。但是抽象类实现接口,不需要实现这些抽象方法。

他们之间的区别:
抽象类是对事物的一种抽象,可以对整个类进行抽象,不仅仅是行为,也包含属性。
接口是对行为的一种抽象。
比如牛和拖拉机都可以耕田,如果想要他们耕田,从程序设计来看。耕田就可以设计成接口。牛和拖拉机都实现这个接口。
但是牛是畜生。可以设计一个畜生的抽象类。拖拉机是车,可以设计一个拖拉机的抽象类。2个抽象类都可以设计抽象方法,一个是吃草的抽象方法。一个是加油的抽象方法。

 // 耕田接口
 interface Plow {
 	// 耕田
	void plow();
}
// 车抽象类
abstract class Car {
	// 加油
	abstract void pourOil();
}
// 拖拉机
 public class Tractor extends Car implements Plow {
	public void plow() {
		System.out.println("tractor  plow");
	}
	public void pourOil() {
		System.out.println("tractor  pourOil");
	}
}
// 牲口
abstract class LiveStock{
	// 吃
	abstract void eat();
}
// 牛
 public class Cattle extends LiveStockimplements Plow {
	public void plow() {
		System.out.println("Cattle plow");
	}
	public void eat() {
		System.out.println("Cattle eat");
	}
}
// 一起愉快的干活
public class gogogo {

	public static void main(String[] args){
		Tractor tractor  = new Tractor(); 
		Cattle  cattle  = new Cattle();
		 
		 tractor.pourOil();
		 tractor.plow();
		 cattle.eat();
		 cattle.plow();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值