免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 969 | 回复: 0
打印 上一主题 下一主题

[Java]abstract class [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-05 23:25 |只看该作者 |倒序浏览

[Java]abstract class (抽象类)的一个问题
Java抽象类的一个问题
在讲抽象类时,老师为我们总结了一下抽象类的两点特性(并发给我们相应的ppt课件):
1.继承抽象类的子类如果不是抽象类,则必须定义(或实现)抽象类内的抽象方法;
2.抽象类中要包含至少一个抽象方法。
我对第二个特点产生疑问,所以试着修改课本的一个例子,把程序里的一个抽象类里的抽象方法删掉,程序照样可以在JCreator上无错误且无警告地运行。此程序如下:
/************************************************************/
public class Test
{
public static void main(String args[])
{
  D200_Card my200=new D200_Card();
  my200.balance=50.0;      
  System.out.println("父类的剩余金额为:"+my200.getBalance());
  System.out.println("子类的剩余金额为:"+my200.balance);   
}
}
abstract class PhoneCard
{
private double balance;
double getBalance()
{
  return balance;
}
}
class D200_Card extends PhoneCard
{
double additoryFee;
double balance;
}
/*************************************************************/
程序运行结果为:
父类的剩余金额为:0.0
子类的剩余金额为:50.0
/***********************************/
可见抽象类里不一定非要一个抽象方法啊。
/********************************************/
一些人认为学java讨论这些问题是钻牛角尖了,那我就没事找点事做吧,呵~
1.查了一下《Thinking in Java(Second Edition)》的中文版,里面也说到:若将某个class声明为abstract,并不强迫你得将所有的函数都声明为abstract。可见,抽象类里不一定非要一个抽象方法。
2.抽象里的含义就是   它必须被具体类实现
3.那我可不可以这样理解:抽象类里必须有抽象方法才好给具体类继承,也就是说具体类继承抽象类的方式就是实现抽象类里的抽象方法呢?好像也不一定。但java有个原则就是非抽象类中不能存在抽象方法。
4.一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法书写方法体。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/40330/showart_315546.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP