Java SE 入门到精通—4.抽象类与接口【Java】

本文详细阐述了Java中的抽象类和接口,包括抽象类的作用、抽象方法的定义和要求、接口的特性(如默认抽象方法、静态抽象方法)、接口与类及接口之间的关系,以及两者之间的主要区别。
摘要由CSDN通过智能技术生成

抽象类

同接口一样,用来约束子类,限制子类必须拥有某些方法,比普通类多了个抽象方法,用抽象方法该类必为抽象类

概念

没有具体的对象,具体的方法的一个类

abstract关键字声明为抽象类/方法

一个类中有抽象方法则该类必须为抽象类

抽象方法:没有方法体需要子类重写使其具有方法体

抽象类不一定要有抽象方法但抽象方法一定在抽象类中

创建对象

抽象类不是具体的,不能直接创建对象而是通过多态形式创建对象

Fu f=Zi z(具体对象);

抽象类的继承

子类继承抽象父类,则子类必须重写父类所有抽象方法或将该子类定义为抽象类

接口

接口本身为抽象类型

用来扩展类的某些方法(后期扩展某些功能),时其类直接实现该接口

用来约束子类行为特征(必须要有某些功能,比抽象类更为纯粹,只含有抽象方法)

因为子类继承抽象类型(接口),所以必须重写抽象方法,所以该子类间接必须拥有某些方法

创建接口

创建文件时选择interface类型或者class关键字改为interface

接口的实现

接口是抽象类的一种特殊,所以也要使用多态形式创建对象,使用类去实现对象的声明

类‘’实现’‘接口

类 implements 接口            implements:实现

创建对象

接口以多态形式创建对象

一般用具体对象(实现类)对象去实现(方法最多)(在接口单实现的前提下)

成员变量

接口中的成员变量默认被public static final修饰,所以接口中只存在常量,且是静态常量

构造方法

接口中没有构造方法(类继承object父类实现对象构造)

成员方法

接口中成员方法只能是抽象方法,默认被public abstract修饰

接口中抽象方法类型

抽象方法

返回值 method_name();

默认抽象方法

default

在开发场景中,接口中方法的需求越来越多,如果增加接口中的方法则将改动所有实现类,代码维护困难,如果子接口继承,或者实现多个接口,则会导致庞大的接口数量,使项目结构是分复杂,因此java在接口中提出default默认修饰符,被该修饰符修饰的抽象方法拥有方法体,实现类可不重写直接使用方法,也可以选择性重写该方法

[public] default 返回值 method_name(){
	.......
}

默认被public修饰

静态抽象方法

在实际开发中一个类会实现多个接口,如果这些接口都含有相同的方法,那该如何区分,因此,为了解决这个问题,java提出了静态抽象方法,具有方法体,只能通过接口名调用静态方法

[public]static void run(){
	..........
}

默认被public修饰

调用静态方法
}
static void main(String[] args) {
	Interface_name.method();
}

默认被public修饰

私有抽象方法(java9)

在接口的开发中,相同方法中必然存在相同的代码块,为了降低代码耦合,因此需要将珙桐属性提取出来,而共性是不提供外部使用的

private 返回值 method_name(){
	........
}

静态私有抽象方法(java9)

满足静态方法的共性调用

private static 返回值 method_name(){
	.......
}

抽象方法无方法体,但是被默认,静态,私有修饰时拥有方法体

接口与类的关系

实现关系,类在继承一个类的同时可以实现多几个接口

接口与接口的关系

继承关系,一个接口可以单继承,可以多继承,还可以多层继承


使用接口时一般用具体对象去实现(具体对象方法最多


抽象类与接口的区别

抽象类:和普通类多了该抽象方法,有其他普通方法,变量,可以提供基础属性和方法

接口:只有静态常量和抽象方法,只添加额外特殊方法,更纯粹

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据小为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值