抽象类与接口

抽象类:abstruct class
抽象类是抽象方法和非抽象方法的集合
抽象方法:只有方法声明,没有方法的实现,以 ; 结束
例:在这里插入图片描述
抽象方法格式:abstract void xxx()
含抽象方法的类必须被声明为抽象类;抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。
不能用abstract修饰私有方法,构造方法,静态方法
下列情况类必须被定义为抽象类:
1.当一个类的一个或多个方法时抽象时
2.当类是一个抽象类的子类,且没有实现父类的抽象方法,只是实现了部分;
3.当一个类实现一个接口,并且不能为全部抽象方法都提供实现时
abstract不能和final,static,private同时使用
在这里插入图片描述
接口:interface
接口中只包含常量和抽象方法,而没有变量和方法的实现;接口对类来说是一套规范,一套行为准则;接口不是了,所以不能被实例化
在这里插入图片描述
接口特点:
1.有interface来定义
2.接口中所有的成员变量默认由public static final修饰(相当于全局常量)
3.接口中所有方法都默认由public static修饰的。接口没有构造方法
4.实现接口中的类必须提供接口中所有方法的具体实现内容
5.多个无关的类可以实现同一个接口
7.一个类可以实现多个无关的接口
8.与继承关系类似,接口与实现类之间存在多态性
9.接口也可以继承另一个接口,用extends关键字
接口举例:
在这里插入图片描述
接口实现+继承举例:
在这里插入图片描述
如果一个类中没有实现接口中的全部方法,那么必须将此类定义为抽象类。
接口与抽象类的区别
1.接口不能含有任何抽象方法,但抽象类可以
2.类可以实现多个接口,但只能有一个父类;接口之间可以有多继承。例如
public interface A extends B, C (B,C也是接口)
3.抽象类可以理解为抽象方法和非抽象方法的混合体,接口中的方法则完全是抽象方法。一般来说,有关系的类才能继承同一个抽象类,而无关的类不可能有同一个抽象类,但无关的了可以实现同一个接口
补充:
这里额外介绍一种模式,叫做简单工厂模式。
在程序开发过程中,程序员经常会直接创建完对象就开始使用,因为这样编程效率高,对于一些简单的对象创建,这样做当然无可厚非,但是对于那些创建后还需要初始化大量参数据的对象来说,这样做就得不偿失了,因为这些复杂的对象创建往往不是在一个地方使用,如果代码中到处都充执着一个初始化参数的地方发生变化,所有的代码都得跟着改变,此时就需要将对象的创建和使用分离开,这就是简单工厂模式。
简单工厂模式的实现原理:
简单工厂模式就是将对象产生的细节进行隐藏,客户端只负责调用即可。简单工厂模式又叫静态工厂方法模式,它定义一个具体的工厂类来负责创建类的对象。
举例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上例中用户只需输入购买商品的单价,数量和折扣即可得出总价,并不显示后层代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值