抽象类是否一定要有抽象方法

lilinew 2009-08-03 12:35:12
没有抽象方法 ,抽象类能存在吗?
...全文
1062 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsj_ren_ren 2011-04-18
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法
d60000522 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 java2000_net 的回复:]
抽象类,只是表示这个类不能被直接简单的 new 出来而已。里面和普通的类没有区别。
[/Quote]
对是这样的。 我记得可以间接的得到一个抽象类的对象。应该是继承抽象类后子类得到的对象赋给抽象类的一个引用。
roma505 2009-08-04
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法
有抽象方法的一定是抽象类。。。可以是接口
flyyuyr 2009-08-04
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法
但是有抽象方法的类一定是抽象类
wym2005em 2009-08-04
  • 打赏
  • 举报
回复
可以的!!
junyao100 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 haydenwang8287 的回复:]
抽象类可以没有抽象方法 有抽象方法的必须是抽象类
[/Quote]
正解,但是我想补充一点的是:抽象类继承于抽象类的时候,可以没有抽象方法
sahala3293 2009-08-04
  • 打赏
  • 举报
回复
我不明白,这问题用得上问吗。试一下就知道,楼主多动手
Clarity-Black 2009-08-04
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法,但是有抽象方法的类一定是抽象类
不过,一个抽象类如果没有抽象方法,那你把它定义成抽象类干嘛?似乎失去意义了~
d60000522 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 lixkyx 的回复:]
引用 23 楼 d60000522 的回复:
引用 10 楼 java2000_net 的回复:
抽象类,只是表示这个类不能被直接简单的 new 出来而已。里面和普通的类没有区别。

对是这样的。 我记得可以间接的得到一个抽象类的对象。应该是继承抽象类后子类得到的对象赋给抽象类的一个引用。


这叫做上转型对象。严格地讲,它仍然是一个子类的对象,不是抽象类的对象。
[/Quote]
是的。严格的说是这样的还是子类的对象。这个方便应用得不知道多不多,说白了还是多态。
lixkyx 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 d60000522 的回复:]
引用 10 楼 java2000_net 的回复:
抽象类,只是表示这个类不能被直接简单的 new 出来而已。里面和普通的类没有区别。

对是这样的。 我记得可以间接的得到一个抽象类的对象。应该是继承抽象类后子类得到的对象赋给抽象类的一个引用。
[/Quote]

这叫做上转型对象。严格地讲,它仍然是一个子类的对象,不是抽象类的对象。
xuchaofu2010 2009-08-04
  • 打赏
  • 举报
回复
抽象类不一定有抽象方法,但含有抽象方法的类必须是抽象类,无抽象方法的类一般是为了让使用者必须继承该类
heaiso1985 2009-08-04
  • 打赏
  • 举报
回复
抽象类是用来解决在多个地方遇到同样的方法
Yan_0629 2009-08-04
  • 打赏
  • 举报
回复
可以的
不能飞的肥燕 2009-08-03
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法 有抽象方法的必须是抽象类
lilinew 2009-08-03
  • 打赏
  • 举报
回复
写了,在3楼。
这个抽象类跟常用类不同,他不支持对本身的实例化
gukuitian 2009-08-03
  • 打赏
  • 举报
回复
写一个不就知道了。
学习Java中 2009-08-03
  • 打赏
  • 举报
回复
抽象类可以没有抽象方法
lovecj6185 2009-08-03
  • 打赏
  • 举报
回复
一点问题都没有!
有时候,为了不让这个类被实例化
故意把没有抽象方法的类定义为抽象类
lilinew 2009-08-03
  • 打赏
  • 举报
回复
验证可以存在 (但是没有意义
)abstract class clsTest{
public static int GetInt()
{ return 1; }
//public abstract void eat();
}

class clsTest2 extends clsTest{
public void sleep(){
System.out.println("Dog sleep.");
}
public void eat(){
System.out.println("Dog eat.");
}

}
int i ;
clsTest k=null;
k=new clsTest2();
k.GetInt();
k.sleep();------错误Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method sleep() is undefined for the type clsTest
ZangXT 2009-08-03
  • 打赏
  • 举报
回复
当然能。
最简单的
public abstract class Main {

}
加载更多回复(15)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧