Java抽象类

目录

一、抽象类的产生

二、注意事项


一、抽象类的产生

父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。

使用某个类描述事件的时候,如果这个类中在描述这个事物的某个行为或功能的时候,只知道这个事物有这个行为或功能,但没有办法书写清楚具体的功能体,函数体,这时可以使用抽象函数来表示这个行为或功能,由于类具有抽象d的函数,这个类就会变成抽象类。

二、注意事项

1、子类在继承抽象类后,需要把抽象类中所有的抽象方法全部复写(重写)完成。

抽象类中定义所有子类的共性行为,然后由具体的子类针对自己的实际情况复写父类提高的基本行为,建立适合自己的功能体。

2、抽象类和一般类有什么区别?

抽象类肯定需要abstract修饰,一般类不能使用。

不管是抽象类还是一般类,它们都是描述事物体系中的某个事物,只不过抽象类描述的一定是这个事物体系中的共性内容,抽象类不一定是最顶层的类,但一定不是最底层的类。

3、抽象类有没有构造函数,能不能创建对象?

有构造函数,但不能创建对象。

构造函数是给成员变量初始化的,抽象类中的构造函数时为了子类对象初始化使用的,因为抽象类一定有子类,而创建子类对象的时候,在子类的构造函数中一定有super()语句会找自己的父类构造函数进行初始化动作。

抽象类一定是个类,类中肯定就会有构造函数。抽象类不能创建对象的原因是抽象类中有抽象函数,如果我们可以直接创建抽象类的对象,那么就可以使用这个对象调用那个抽象函数,而抽象函数没有函数体的函数,调用函数的最终目的是需要函数体的执行完成我们想要的结果。因此我们如果可以创建抽象类的对象,那么就会导致可以调用抽象函数,而调用了抽象函数,却得不到任何想要的效果。这样的做法没有意义,因此sun公司在指定抽象类的规则时,不让程序直接创建抽象类的对象。

4、抽象类一定是父类吗?

一定是父类,不一定是顶层父类。

抽象类中通常都有抽象函数,而抽象类中的抽象函数要求必须由子类复写,由子类来实现其中的函数体。

5、抽象类可以继承其他类吗?

抽象类也是一个类,因此它必须具备类的继承特点,它可以有父类。

6、抽象关键字不能和哪些关键字共存?

private修饰符,表示私有的。

private父类中的私有的成员,子类是不知道的,因此使用private和abstract关键字一起修饰函数,导致子类根本无法知道父类中有个抽象函数,同时也导致子类不能复写父类中的方法。

static修改符,表示静态的。

如果使用static和abstract关键字一起修饰抽象函数,导致这个函数可以使用类名直接调用,而抽象函数是没有方法体的,调用这个抽象函数是没有意义的。

final修饰符,表示最终的。

final修饰的函数子类是无法复写的,而abstract修饰的函数,要求子类必须复写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值