已有101人关注
抽象类也可以实例化的?在什么条件下可以的?
发表在Java图书答疑 2008-09-21
是否精华
版块置顶:
《JAVA程序设计自学手册》P199中的列程01中为一个抽象类InputStream 建立实例:InputStream  is =System.in。不明白了。抽象类按理是不能实例化的,在P114上说的明明白白的。这里是否是一种新的语法可以进行抽象类的实例化么?可以创建抽象类的实例 is ?用一个final类型System类调用其静态方法in就可以创建抽象类的对象了?
分享到:
精彩评论 5
小小邪
学分:0 LV1
2008-09-22
沙发
您好:
    首先感谢你对本书的支持,书中的原文并不是说实例化一个InputStream类的对象,而是创建一个InputStream类的实例对象,也就是一个变量,类型是InputStream。书中原文如下
      “在类中创建InputStream类的实例对象is,并为其赋值为Systems类的in属性。”
    原意是创建一个变量,然后初始化为其他内容。我们会在改版时留意该问题,避免初学者混淆。
小小邪
学分:0 LV1
2008-09-22
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
您好:
    首先感谢你对本书的支持,书中的原文并不是说实例化一个InputStream类的对象,而是创建一个InputStream类的实例对象,也就是一个变量,类型是InputStream。书中原文如下
      “在类中创建InputStream类的实例对象is,并为其赋值为Systems类的in属性。”
    原意是创建一个变量,然后初始化为其他内容。我们会在改版时留意该问题,避免初学者混淆。
[/FIELDSET]

回复:
  另外,赋值给抽象类变量的对象,都是由该抽象类的实现类,也就是子类所实例化的对象。抽象类本身是不能创建对象(实例化)的。
limqqepp
学分:0 LV1
2008-09-22
地板
还是稀里糊涂
小小邪
学分:0 LV1
2008-09-22
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
还是稀里糊涂
[/FIELDSET]

回复:
  也就是说System类的in变量是InputStream 类的子类所创建的对象,把它赋值给InputStream类型的变量是没问题的,子类的对象可以赋值给父类的引用变量。
CHENtao
学分:0 LV1
TA的每日心情
奋斗
2020-07-20 15:09:56
2013-10-02
5L
你好:抽象类可以创建抽象方法和成员方法,创建抽象类的实例是由它的子类创建并完成抽象类中的所有抽象方法;还有final类型的方法必须配合Static使用的,由Static修饰的方法是不能被继承的(extends).
首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照