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

如题所述

抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor, jet, fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-29

它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化。

在抽象类中可以有构造方法,只是不能直接创建抽象类的实例对象,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都会调用父类的构造方法,初始化一个类,先初始化父类。

本回答被网友采纳
第2个回答  2018-03-19

家里的狗狗总是抓身上的痒、掉毛厉害、有时候还有皮屑如何解决?

第3个回答  2018-02-01
抽象类可以声明对象,但是不能使用自身的构造方法创建对象,但是可以使用子类的构造方法进行创建。
public abstract class A{}
public class B extends A{}

A a = new B();

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

java 中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可 ...
创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造方法,

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

java的抽象方法是必须有的吗?
不一定,抽象类可以没有抽象方法,但是如果一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类...

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

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

抽象类和接口都没有构造方法
在抽象类中,构造方法可以有,但是不能被直接调用。当创建一个抽象类的实例时,实际上是通过子类继承抽象类并覆盖它的抽象方法来完成的。在这个过程中,如果子类没有提供构造方法或者提供的构造方法没有显式地调用父类的构造方法,那么抽象类的构造方法不会被调用。因此,抽象类的构造方法主要用于初始化...

java抽象类中没有抽象方法,为什么还是不能new对象
因为 抽象类 不能实例化,和他是否有抽象方法无关。虚拟机通过 他的“类”型就直接判定是否能实例化,与他内部的详细构造无关。有抽象方法的类一定是抽象类 而抽象类可以没有抽象方法,但是这改变不了他依然是抽象类的本质。

java抽象类中的构造方法有什么作用?如何理解?
构造函数是负责这个类对象的创建过程,也就是说它负责了创建这个阶段的生命周期,如果说你这个类在创建的时候需要满足什么样的业务规则,那么这些规则的定义就应该在构造函数中。1、java抽象类 使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract...

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

相似回答