abstract java

作者:原创时间:2022-03-18
文档

abstract java是什么,让我们一起了解一下?

1.abstract是修饰类,会让它成为一个抽象类,而这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。

2.abstract是修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

1、那么问题来了,什么是抽象类?

1.类和类之间如果具有相同的特征,将这些共同的特征提取出来,形成的就是抽象类。

2.类本身是不存在的,所以抽象类无法实例化对象。
3.类到对象是实例化,对象到类是抽象。

他的测试代码是:

public class Test
public static void main(String[] args){
Animal a1=new Animal();//此行报错
//抽象类Animal
abstract class Animal {

2、为什么abstract修饰符在修饰类时必须放在类名前?
因为abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。
注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。


举个简单的例子下面有一个抽象类:


abstract class E{
public abstract void show();//public abstract 可以省略
}
然后其它类如果继承它通常为了实现它里面的方法

class F extends E{
void show(){
//写具体实现的代码
}
}
最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如
E e=new F();
e.show();
实际调用了子类里面的show()方法。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
交管12123怎么查科目一分数 antlr java ajax java ansible java aspect java 怎样改抖音名字的昵称 assert java asterisk java axis java bitset java boolean java brew java c#调用java c#调用java接口 cache java calendar java qq实名认证怎么解除 callable java character java class转java 拼多多拒收在哪里操作 微信恢复删除的聊天记录 微信扫码不能扫了怎么办 怎样查看微信删除的聊天记录 两个二维码怎么拼一起 电脑忘记开机密码怎么办 js 字符串转数字 linux ftp python range函数 java 泛型 java json java final java foreach java hashmap java lambda java random java stream java filereader maven安装配置 idea的maven配置