A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fyg408224345 中级黑马   /  2015-6-16 17:36  /  817 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天上课学抽象类。有个问题不太懂,一个类中没有抽象方法,居然定义抽象类,有什么意义?
哪位大神帮忙解释一下。。。。

6 个回复

倒序浏览
就是硬性要求你必须继承并覆盖它的方法,不覆盖不让你用,因为它提供的方法可能全部是空的
回复 使用道具 举报
抽象类首先是不允许直接创建该类对象,而且一般情况至少有一个必须让子类继承覆盖的抽象方法;如果没有一个抽象方法都没有,那这个抽象类虽然理论没有问题但没什么意义
回复 使用道具 举报
zlpiano 发表于 2015-6-16 18:00
就是硬性要求你必须继承并覆盖它的方法,不覆盖不让你用,因为它提供的方法可能全部是空的 ...

不是,你没看清题。定义的一个抽象类,但这个类中没有抽象方法。这个类有什么意义?有抽象方法的类一定是抽象类,但抽象类不是必须有抽象方法。
回复 使用道具 举报
守门员 发表于 2015-6-16 18:50
抽象类首先是不允许直接创建该类对象,而且一般情况至少有一个必须让子类继承覆盖的抽象方法;如果没有一个 ...

我现在有点想明白了,抽象类中一个抽象方法也没有,这个编译不会报错,所以理论没有问题。但它还是定义成了抽象类,我想是为了限制别的类访问吧,你要想访问我的属性和方法,就得继承我。不继承不能用。
回复 使用道具 举报
只是语法上能通过吧,没什么实际作用。有个参考, Serializable接口,就起到一个标志作用。如果定义了内部类,可以实现对内部类访问的保护,让内部类的实例化方式唯一。
回复 使用道具 举报
学习了      
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马