抽象类与接口

抽象类
是一个虚无没有概念的东西
你需要给他带入东西进去才算实体
定义抽象类的关键字adstract
定义后你会发现无法实例化这个对象
你需要将他的子类当作对象给他带入进去也就是多态 
也就是抽象类不能被实例化
同样adstract关键字也可用于方法 抽象方法
抽象方法没有方法体
抽象方法必须在抽象类里
抽象发放必须在子类中被实现 除非子类是抽象类
只有方法的声明,没有实际方法体
抽象方法没有{}结束是使用;号结束的
在抽象类里面可以有抽象的方法也可以不是抽象的方法
抽象类的优点:
1.提高可重用性:
抽象类可以看作是一个类的模板,定义了子类的行为
可以为子类提供默认实现,无需子类中重复实现这些方法
2.代码松耦合,更易于维护:
子类可以分别实现抽象父类中定义的抽象方法,将方法定义和方法实现的分离
3.方便实现多态:抽象类作为继承关系下的抽象层,不能被实例化
通常定义抽象类类型变量,其具体引用是实现抽象类的子类对象
抽象方法只有方法声明,没有方法实现
有抽象方法的类必须声明为抽象类
子类必须重写所有的抽象方法才能实例化;否则,子类也必须声明成抽象类
抽象类中可以没有、有一个或多个抽象方法,甚至可以定义全部方法都是抽象方法
不是由private修饰构造方法,可以被其子类的构造方法调用
abstract可以用来修饰类和方法,不能用来修饰属性和构造方法

final:定义变量所称常量,定义类不能被继承 定义方法不能被重写 可以被重载

接口
Java中,接口:
是一种规范和标准:
可以约束类的行为,使得实现接口的类(或结构)在形状上保持一致
是一些方法特征的集合:
可以看作是一种特殊的“抽象类”
但采用与抽象类完全不同的语法
抽象类利于代码的复用性,接口利于代码的扩张和维护
接口的·关键字 interface
public interface 接口名
顶替在class位置
一个不能被实例化的类型
接口中的变量都是静态的常量
自动使用public static final修饰
定义的时候必须指定初始值
类实现接口的时候是
public class implements 接口名
实现类必须实现接口的所有方法
实现类可以实现多个接口  同时还可以继承一个父类
在接口中抽象方法系统会自动添加public adstract修饰 这也被我们称为默认方法
接口中默认方法如果不能满足某个实现类的需求
可以在实现类中重写 需要在void前面加入default
默认方法不能被重写 但是能实现到默认方法子类可以继承默认方法
接口中静态方法
不允许在接口的实现类中重写
只能通过接口名称调用 需要在void前面添加static
接口是一种能力:体现在接口的方法上
面向接口编程
程序设计时:
1.关心实现类有何能力,而不关心实现细节
2.面向接口的约定而不考虑接口的具体实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值