JAVA基础(一)---JAVA四大特性之一抽象
来源:互联网 发布:网络之重临巅峰txt下载 编辑:程序博客网 时间:2024/06/07 01:27
一、抽象类
(1)概念
JAVA是面向对象语言,所有的对象都可以用类(class)来实现,反过来说并不是所有的类都是描述对象的,如果一个类没有足够的信息来描述一个具体的对象,那么我们就称这个类是抽象类。
(2)解释
抽象类描述的是对现实中的一系列广义上相同,但具体到单个时就不同的事物,我们没有办法完全描述这一系列的事物,我们把这种现象称为抽象。比如:汽车就可以当抽象处理,不同车型有着共同的特性,但“汽车”无法描述不同车型的不同特性,所以可以把汽车当成一个抽象对象,当我们描述小轿车的时候就可以继承“汽车”的这个抽象类。
(3)规范
抽象类必须用abstract关键字修饰,抽象类的方法没有方法体(例如没有{})则该方法必须用abstract修饰
由以上信息可以得出:有抽象方法的类一定是抽象类,但是抽象类不一定有抽象方法。
(4)特点
1.抽象方法必须声明为public或protected以便于子类继承;
2.抽象类不可实例化;
3.不同类继承抽象类,必须实现父类的抽象方法,如果不实现那么子类也必须是抽象类,因为普通类不允许有抽象方法(来自父类的也不行)
二、接口
(1)概念
说了抽象类就不能不说接口,接口是抽象的抽象,它不允许有自己的默认方法体,接口是一个特殊形式的抽象类,想到抽象类就会联系到继承,但是单继承的规则满足不了我们日常的业务及技术需求,这时候我们就会用到接口,一个类可以实现多个接口。
(2)解释
一个典型例子就是“司机”。谁可以当司机?谁都可以,只要领取了驾照。所以我不管你是学生,白领、蓝领还是老板,只要有驾照就是司机。
(3)规范
1.用interface申明类;
2.不允许有方法体;
(4)特点
1.变量只能是public static final;
2.接口中的方法只能被public abstract修饰;
三、抽象类与接口的区别
1.抽象类可以有方法的实现,接口不可以;
2.抽象类定义变量与普通类无异,而接口只能用 final static修饰;
3.接口中不允许有静态代码块和静态方法,而接口可以;
4.抽象类单继承,接口多实现
5.抽象是对事物的抽象,把相同的特性抽象成单独的类,不同的类去继承这个抽象类以实现对不同事物的具体描述。而接口是对事物行为的抽象。例如:大千世界中,任何一个物体都可以是一个对象,例如电脑和人,虽然他们的属性不同,但都有一个共通的行为,思考。只不过人可以做复杂的思考,而电脑只能做简单的思考,这样,人和电脑就是两个抽象,而对于共同的行为,思考,这可以定义一个接口Think,包含一个方法think,具有该思考行为的则实现该接口,不具有的则不实现
四、总结
通过上面的描述已经把抽象类和接口描述的很清楚了,在实际项目中还是要多用接口毕竟回避了单继承的局限性。如果大家觉得有什么疑惑,可以留言相互探讨。
- JAVA基础(一)---JAVA四大特性之一抽象
- java四大特性理解(封装继承多态抽象)
- java四大特性理解(封装继承多态抽象)
- Java面向对象四大特性之抽象
- java面向对象的四大特性-多态,继承,抽象,封装
- 对封装、抽象、继承、多态的理解?(java四大特性)
- java四大特性
- (1)Java的四大特性
- Java修炼 之 基础篇(一)Java语言特性
- Java修炼 之 基础篇(一)Java语言特性
- java面向对象四大特性
- JAVA四大特性之多态
- Java基础(一):抽象类与接口的区别
- java基础复习六:三大特性之一继承
- 修炼 之 基础篇(一)Java语言特性
- java三大特性之一(多态)
- Java四大特征(抽象、封装、继承、多态)
- java抽象类、接口特性
- ccf之ISBN号码
- MAC 设置JAVA_HOME环境变量
- Codeforces 452 E. Segments Removal
- 数据流重定向和管道命令
- 科比退役原因-数据分析
- JAVA基础(一)---JAVA四大特性之一抽象
- qrt(x) II
- 硬盘检测工具CrystalDiskMark中文版|crystaldiskmark中文版V6.0.0.0下载|CrystalDiskMark硬盘检测工具
- list的erase
- 中国IT行业风投
- ajax图片上传
- 队列(FIFO)先进先出
- 建造者模式
- [最小权路径覆盖 & 网络流] BZOJ2324 :[ZJOI2011] 营救皮卡丘