JAVA为什么抽象类不能用构造方法直接创建对象

如题所述

抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor, jet, fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-12
抽象类可以声明对象,但是不能使用自身的构造方法创建对象,但是可以使用子类的构造方法进行创建。
public abstract class A{}
public class B extends A{}

A a = new B();
第2个回答  2011-10-12
是一个抽象的东西,是我们随意想象的,不是现实生活中存在的实体。

抽象类有构造方法吗?
问题三:java中,抽象类可以有构造方法吗 抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。问题四:新手~~java抽象类构造方法问题 Cat myCat = new Cat(myCat); 你右边作为构造函数传入的myCat是个啥?你的程序里要求的是String类型,是不是考虑改成Cat myCat = new Cat(myCat)...

java 中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可 ...
1.首先你要搞清楚java里new这个关键字,new说的是要调用构造方法,分配内存空间,创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造...

在JAVA的抽象类中,可不可以写带参数的构造方法。
1 ,在JAVA的抽象类中,可以写带参数的构造方法。2,如果这个抽象类被继承,在子类中可以用super调用这个构造方法 俗话说 实践出真知 我也是刚刚在Eclipse上写的 呵呵 回答完毕

java中,抽象类可以有构造方法吗?
抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法 示例代码如下:运行结果:

为什么抽象类不能有构造函数?
抽象类的定义:如果一个类中包含纯虚函数,则该类被称为抽象类,不能被实例化。所以抽象类都不可实例化,自然构造函数也就没意义了。

在java中,采用什么来描述抽象数据类型
抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽...

抽象类必须要有抽象方法吗
abstract抽象类不能用new实例化对象,abstract方法只允许声明不能实现。如果一个类中含有abstract方法,那么这个类必须用abstract来修饰,当然abstract类也可以没有abstract方法。一个抽象类里面没有一个抽象方法可用来禁止产生这种类的对象。java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据...

Java 抽象类能不能实例化
结论是:Java中的抽象类不能被实例化。让我们进一步探讨这个概念。抽象类是Java中一种特殊的类,它使用abstract关键字标记,其主要目的是为了定义类的公共接口,而不是创建具体的对象。抽象类可以包含成员变量、成员方法和构造方法,但不能直接通过new关键字实例化,因为它们通常不提供完整实现,而是留给子类...

抽象类和接口都没有构造方法
抽象类和接口都没有构造方法,这句话是错误的。接口和抽象类都可以有构造方法。接口是Java语言中的一个抽象类型,它定义了一组抽象方法(没有实现),并且可以用来被其他类实现或继承。抽象类是Java语言中的一个特殊的类,它不能被实例化。抽象类中可以包含抽象方法和非抽象方法,也可以包含实例字段和...

接口为什么不能有构造函数
忽然有此一文,是因为同学疑惑道:抽象类居然还有构造方法,又不能直接用来new。我的解释是平时在抽象类中对于构造方法的存在,没有什么印象,是因为IDE默认为你生成了一个无参构造方法,也可以显式地写出构造方法,这个构造方法,是用来被子类调用的,因为任何子类都必须调用从Object开始的所有父亲的构造...

相似回答