黑马程序员——面向对象之抽象类,接口
来源:互联网 发布:51单片机助手破解版 编辑:程序博客网 时间:2024/06/05 14:08
抽象类
1 抽象类概述
抽象定义:
抽象就是从多个事物中将共性的、本质的内容抽取出来。例如:狼和狗共性都是犬科,犬科就是抽象出来的概念。
抽象类:
Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。抽象方法的由来:
多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。
2 抽象类的特点例如:狼和狗都有吼叫的方法,可是吼叫内容是不一样的。所以抽象出来的犬科虽然有吼叫功能,但是并不明确吼叫的细节。
抽象类和抽象方法必须用abstract关键字来修饰。原因如下:
抽象方法只有方法声明,没有方法体,定义在抽象类中。
格式:修饰符abstract返回值类型函数名(参数列表);
抽象类不可以被实例化,也就是不可以用new创建对象。
a.抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实例。例如:犬科是一个抽象的概念,真正存在的是狼和狗。
b.而且抽象类即使创建了对象,调用抽象方法也没有意义。c.抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也是抽象类。
接口
当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口。
格式:interface{}接口中的成员修饰符是固定的:成员常量:public static final成员函数:public abstract由此得出结论,接口中的成员都是公共的权限。接口是对外暴露的规则。接口是程序的功能扩展。
P.S.
1、虽然抽象类中的全局变量和抽象方法的修饰符都可以不用写,但是这样阅读性很差。所以,最好写上。2、类与类之间是继承关系,类与接口直接是实现关系。3、接口不可以实例化,能由实现了接口并覆盖了接口中所有的抽象方法的子类实例化。否则,这个子类就是一个抽象类。接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
在java中不直接支持多继承,因为会出现调用的不确定性。
所以,java将多继承机制进行改良,在java中变成了多实现,一个类可以实现多个接口。
接口的出现避免了单继承的局限性。抽象类和接口的异同点?
相同点:
都是不断向上抽取而来的。
不同点:
1.抽象类需要被继承,而且只能单继承。接口需要被实现,而且可以多实现。2.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。接口中只能定义抽象方法,必须由子类去实现。3.抽象类的继承,是isa关系,定义该体系的基本共性内容。接口的实现是likea关系。
0 0
- 黑马程序员——面向对象之抽象类,接口
- 黑马程序员——面向对象之抽象类与接口
- 黑马程序员——Java面向对象之抽象类 接口 内部类笔记
- 黑马程序员--面向对象之三:抽象类和接口
- 黑马程序员——面向对象(继承、抽象、接口)
- 黑马程序员----面向对象之“抽象类”
- 黑马程序员---面向对象之"抽象类"
- 黑马程序员-JAVA面向对象之抽象、接口、多态
- 黑马程序员————面向对象(继承,抽象类,接口,多态,异常)
- 黑马程序员——面向对象——多态-抽象类-接口
- 黑马程序员——Java面向对象(三)—抽象类、接口
- 黑马程序员———面向对象之多态、抽象类和接口
- 黑马程序员 笔记(七)——面向对象(继承、抽象类、接口)
- 黑马程序员——>第七天<面向对象(继承-抽象类-接口)>
- 黑马程序员_JAVA笔记07——面向对象3(继承、final、抽象类、接口)
- 黑马程序员——面向对象(final关键字、抽象类、模版方法、接口)
- 黑马程序员——面向对象(抽象类、接口、内部类)
- 黑马程序员——面向对象07(继承、final、抽象类、模版方法、接口)
- linux 远程登录到windows
- 单点登录和cas
- [转]国内各地图API坐标系统比较与转换
- iOS音视频开发时候使用FFMpeg
- 按钮的现实隐藏特效
- 黑马程序员——面向对象之抽象类,接口
- 关于触发器死循环的问题
- 2013计算机视觉代码合集二
- Window server2008下jenkins搭建vc构建
- 一文读懂卷积神经网络
- java swing setUndecorated(true) 无效
- 完全数
- android view转换成bitmap截图
- 用UIActivityViewController做共享