JAVA抽象类
来源:互联网 发布:多益网络面试测试 编辑:程序博客网 时间:2024/05/21 19:38
一个类在描述事物时,没有足够的信息来描述这个事物,这个类就是抽象类。
如“犬科”类,该类有犬科的一些基本属性,但是犬科动物与犬科动物的属性和行为方法有区别。
此时应将犬科类定义为抽象类。
特点:
1、方法只有定义而没有实现时,该方法就是抽象方法,需要被abstract修饰。
抽象方法必须在抽象类中,该类也必须被abstract修饰。
2、抽象类不能被实例化。因为抽象方法无意义。
3、抽象类必须有其子类覆盖了所有抽象方法时,该子类才可以实例化。
否则该子类还是一个抽象类
abstract class Demo{ abstract void show(); //加abstract关键字代表这是一个抽象方法,当有抽象方法存在时,类也需要加abstract关键字。 //此方法不加大括号,没有方法体,只有一个抽象的定义。}
1、抽象类中是否有构造函数。
有,用于给子类对象进行初始化
2、抽象类是否可以不定义抽象方法
可以,但是很少见。目的是不让该类创建对象。AWT的适配器对象就是这种类。
通常这个类中的方法有方法体,但方法体没有内容
abstract class Demo { void show1(){} void show2(){} }
3、抽象关键字不可以和哪些关键字共存
private 因为抽象方法需要被子类覆盖,抽象类中的方法若使用了private关键字,则子类无法对其进行覆盖。
static
final final修饰的类被继承,修饰的方法不能被覆盖
4、抽象类和一般类的异同点
同:
抽象类和一般类都是用来描述事物的,都在内部定义了成员
不同:
1、一般类有足够的信息描述事物
抽象类的信息可能不足
2、一般类中不能定义抽象方法
抽象类中可以定义抽象方法以及非抽象方法
3、一般类可以被实例化
抽象类不可以被实例化
5、抽象类是否一定是父类
TRUE
因为需要子类覆盖其所有抽象方法后才能对子类进行实例化。
若子类B未覆盖抽象类A的所有抽象方法,此时B还是个抽象方法
虽然抽象方法B是A的子类,但是因为抽象方法没有全部被覆盖,此时类B无法实例化
只有抽象类B的子类C对其进行完全覆盖,类B的子类C才可以实例化,此时B是C的父类
- java 抽象类,抽象方法
- java 抽象类,抽象方法
- java抽象函数,抽象类
- Java抽象类抽象方法
- java--抽象类、抽象方法
- java抽象和抽象类
- java抽象类、抽象方法
- java抽象类抽象方法
- java--抽象类/抽象方法
- java中的抽象类
- Java中的抽象类
- Java抽象类
- java抽象类
- java 抽象类 Shape
- java抽象类
- Java抽象类
- java抽象类
- java 抽象类
- Android原生Launcher3伪3D Touch分析
- centos7下静默安装oracle11g
- iOS开发笔记之渐隐提示框
- [BZOJ 2243][SDOI2011] 染色 树链剖分 模板题
- ac自动机MLE情况下
- JAVA抽象类
- 优秀程序员写代码的七个优秀习惯
- hdu1098 Ignatius's puzzle
- Java泛型中E、T、K、V等的含义
- 9.29
- 指针到底能不能修改其指向的常量字符串?&向NULL地址copy数据
- c++ 学习2
- VsCode插件安装及推荐
- Java调用本地应用程序(Windows)