是InputStream抽象类,可却有构造方法。那能创建对象吗? 大家知道,InputStream是抽象类,而一般抽象类是不能创建对象的。但查一下,又会发现InputStream是有构造方法的。并且据一些书籍的介绍,System.in就属于InputStream的一个对象。这到底怎么回事呢?是抽象类也能创建对象,还是InputStream就不是抽象类呢?请教各位高手和专家。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 个人理解:抽象类,不可以使用: new 类名(),进行创建对象的动作 in是InputStream子类的一个对象,说它是InputStream的对象也可以的抽象类不可以创建对象InputStream是抽象类,本人新手也不知道InputStream为什么会有构造方法 ①抽象类不能实例化对象。但是其具体子类可以。②InputStream是抽象类。所以虽然InputStream有构建器,但是不能用于实例化对象,只能在子类实例化子类对象的时候为子类服务。③System.in是BufferedInputStream子类的对象,当然也符合InputStream类型。 2楼正解。1楼扯淡。接着你的问题,我想到了一个更深层次的问题。抽象类为什么不能 创建对象呢。因为抽象类有abstract的方法。所以不能创建对象。但是,抽象类必须有构造方法。为什么这么说呢?抽象类,有一个用途,就是当做模板。让别的类来继承他(继承的时候实现他所有的abstract方法)大家应该知道子类的构造方法里第一句会调用super()也就是父类的构造方法用来初始化从父类继承来的字段。这个时候相当于在子类内部创建了一个隐藏的父类对象。但是,这看似与我们刚才说的,抽象类不能创建对象矛盾了。但,如果你自习思考就会知道。其实不矛盾。抽象类不能创建对象是因为有方法是abstract类型的。而我用子类继承他的时候必然实现了他的abstract方法。这样就没有方法是abstract的了。所以也就相当于刚才的创建合法。这就是抽象类中有构造方法,而且必须有构造方法的原因。 帮忙看下这段读取字节流的代码哪里出问题了 怎么用java怎么获取音频播放时长(wav格式) SqlServer1433端口问题 100求做一道小题,请各位兄弟帮忙 请问如何读取二进制文件,如要读取软件安装文件setup.exe等? 关于大小写转换器的问题 看过《JBuilder6入门与提高》的请来看看图像淡入淡出的例子!谢谢! 大家不会因为我只有10分而不回答我的问题吧~?谢谢大家了啊 win2000server 下 如何得到Server.class 求一条正则表达式的写法 初学package和import的时候的问题,类在XX.XX.XX中不是公用的问题 面向对方程序设计方面求帮助!
抽象类不可以创建对象InputStream是抽象类,
本人新手也不知道InputStream为什么会有构造方法
②InputStream是抽象类。所以虽然InputStream有构建器,但是不能用于实例化对象,只能在子类实例化子类对象的时候为子类服务。
③System.in是BufferedInputStream子类的对象,当然也符合InputStream类型。
这就是抽象类中有构造方法,而且必须有构造方法的原因。