有关抽象类能否实例化的问题?

问题描述

抽象类都是不可创建实例化对象的,我记忆中看到的所有教科书上都是这么写的。但是工厂类使用newInstance方法究竟是不是创建实例化对象?在解析xml的时候需要使用解析器对象,但是该类不都是抽象的吗?

解决方案

解决方案二:
抽象类是不能被实例化的。这个是确定的。你大概是没有看到类库中的一些子类。这样做比较容易看懂,你只要看到接口就可以了,至于是如何实现的,不同的类库可能有不同的方法。
解决方案三:
引用1楼freshidea的回复:

抽象类是不能被实例化的。这个是确定的。你大概是没有看到类库中的一些子类。这样做比较容易看懂,你只要看到接口就可以了,至于是如何实现的,不同的类库可能有不同的方法。

也就是说抽象类原则上是不可被实例化的,但是和私有变量通过暴力破解的方式能被外部使用一样,作为抽象类的工厂类也有自己的特殊方法能以对象的形式使用?
解决方案四:
1.抽象类必须用abstract关键字来修饰;抽象方法也必须用abstract来修饰。2.抽象类不能被实例化,也就是不能用new关键字去产生对象。3.抽象方法只需声明,而不需实现。4.含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
解决方案五:
引用2楼Kogasa的回复:

Quote: 引用1楼freshidea的回复:
抽象类是不能被实例化的。这个是确定的。你大概是没有看到类库中的一些子类。这样做比较容易看懂,你只要看到接口就可以了,至于是如何实现的,不同的类库可能有不同的方法。

也就是说抽象类原则上是不可被实例化的,但是和私有变量通过暴力破解的方式能被外部使用一样,作为抽象类的工厂类也有自己的特殊方法能以对象的形式使用?

这个没有暴力一说,是一种设计模式。如果这个抽象类被实例化,那么,你调用这个类中未实现的方法时,会产生什么行为呢?
解决方案六:
这个就很简单的啦,工厂的newInstance方法内部肯定有一个该抽象类的实现类子类用子类来实例化然后返回,抽象类是肯定不能实例化的,除非这样写(若A是抽象类):Aa=newA(){..这里实现抽象类未实现的方法}

时间: 2024-09-17 03:37:28

有关抽象类能否实例化的问题?的相关文章

抽象类的实例化,迷茫!!!

问题描述 abstractclassE{voidoutPut(){System.out.println("E");}}publicclassTest8{publicstaticvoidmain(String[]args){Ee=newE(){};e.outPut();}}Ee=newE(){};这是什么意思?Ee=newE();这样就报错,(E是抽象的,无法对其进行实例化)newE(){};这什么意思```高手帮帮解释下!!! 解决方案 解决方案二:你那个抽象类没有抽象方法,所以{},

class-GameUserItem 不能实例化抽象类

问题描述 GameUserItem 不能实例化抽象类 编译经典版时,别的错误都解决了,现在又出了这个啊 有知道的吗? 解决方案 可以这样定义 抽象类 a=new 实体类.. 或者直接 抽象类 a=实体类实例 解决方案二: 举个例子:宠物类下面有狗狗类,猫猫类来继承它. 一般的情况我们有这两种方法 宠物类 a =new 狗狗类(); 翻译就是.我有一只宠物,这只宠物是狗狗,它叫a 狗狗类a=new 狗狗类(); 我有一只狗狗,它叫a. 这个不区别.关键的是,楼主来看下面的代码 宠物类 a=new

C#抽象类、密封类及类成员

1.抽象类和类成员 使用 abstract 关键字可以创建必须在派生类中实现的不完整的类和类成员. 例如: public abstract class A { // Class members here. } 抽象类不能实例化.抽象类的用途是提供多个派生类可共享的基类的公共定义.例如,类库可以定义一个作为其多个函数的参数的抽象类,并要求程序员使用该库通过创建派生类来提供自己的类实现. 抽象类也可以定义抽象方法.方法是将关键字 abstract 添加到方法的返回类型的前面. 例如: public

[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类

相关文章: [你必须知道的.NET] 第三回:历史纠葛:特性和属性 [你必须知道的.NET] 第四回:后来居上:class和struct 1. 引言 在我之前的一篇post<抽象类和接口的谁是谁非>中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉.同时,我将把上贴中的问题顺便也在此做以交代. 2. 概念引入 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称

php抽象类用法实例分析_php技巧

本文实例讲述了php抽象类用法.分享给大家供大家参考.具体如下: <?php /* * abstract * 抽象类: * 1.至少有一个抽象方法(没有具体实现的方法) * 2.不能被实例化,可以被继承 * 3.抽象类可以有子抽象类 * 相对于接口: * 1.可以有属性 * 2.一个子类只能继承一个抽象类,但是可以实现多个接口 * * * */ abstract class qian { abstract function getfirst(); function gettwo() { echo

Java基础-09总结final,多态,抽象类,接口

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. /* final可以修饰类,方

第13周-任务2-动物怎么叫?——好玩中理解抽象类

[题目]下面给出了基类Animal和main()函数. (任务2.1)根据main()函数给出的注释提示,设计出相关的各个类. (任务2.2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的.改造程序,使Animal设计为抽象类,这时main()函数中p =newAnimal();将出错,将此行删除. (任务2.3)每一个Animal的派生类都有一个"名字"数据成员,改造上面的程序,将这一数据成员作为抽象类Animal数据成员被各派生类使用. cl

java面向对象(三)之抽象类,接口

java类 java类分为普通类和抽象类,接口,上一节我大概讲了java类的一般格式,今天将抽象类和接口.同时讲一下它们是怎样存储的. 最重要的是理解为什么要有抽象和接口,这样学下来你猜不会迷茫,才能更好的去使用,所以多看看我写的关于抽象类和接口的目的. 抽象类 目的 为了对代码更好的维护和重用. 解析: 抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象. 1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用.这样就可

php导出CSV抽象类实例_php技巧

本文实例讲述了php导出CSV抽象类及其应用,分享给大家供大家参考.具体分析如下: 该php导出CSV抽象类,可根据总记录数与每批次记录数,计算总批次,循环导出.避免内存不足的问题. ExportCSV.class.php类文件如下: <?php /** php Export CSV abstract class,根据总记录数与每批次记录数,计算总批次,循环导出. * Date: 2014-05-16 * Author: fdipzone * Ver: 1.0 * * Func: * publi