问题描述
抽象类都是不可创建实例化对象的,我记忆中看到的所有教科书上都是这么写的。但是工厂类使用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