java抽象类不能实例化?
发布网友
发布时间:2022-04-20 04:36
我来回答
共1个回答
热心网友
时间:2023-07-15 18:15
抽象类的概恋:
抽象类:就是包含有未定义的虚函数的类,也就是说只在类中声明了一个抽象类,但没有具体定义,或者把虚函数定义为virtual void f()=0;这样的形式。注意函数后有一个=0。因此派生类必须实现这个函数,如果派生类没有实现这个函数,则这个派生类也是抽象的。
抽象类为什么不能实例化对象:因为抽象类中包含有没有定义的函数,因此不能用抽象类来实例化对象。但可以声明抽象类的指针指向派生类。
示例:
class A{public: virtual void f()=0;}; //声明一个抽象类
class B:public A{public: void f(){cout<<"B"<<endl;};
void main()
{A ma; //错误,因为类A是抽象类,含有未实现的函数f()。因此不能创建对象
B mb;
A *p=&mb; //可以创建抽象类的指针指向派生类对象。
}
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 [1]
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 [1]
比如,在一个图形编辑软件的分析设计过程中,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域并不是直接存在的,它就是一个抽象概念。而正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
Java 抽象类能不能实例化
结论是:Java中的抽象类不能被实例化。让我们进一步探讨这个概念。抽象类是Java中一种特殊的类,它使用abstract关键字标记,其主要目的是为了定义类的公共接口,而不是创建具体的对象。抽象类可以包含成员变量、成员方法和构造方法,但不能直接通过new关键字实例化,因为它们通常不提供完整实现,而是留给子类...
java语言中的抽象类如何实例化?
抽象类在Java中是无法直接实例化的,因为抽象类中至少包含一个抽象方法,该方法未实现任何具体的代码逻辑。直接实例化抽象类会导致编译错误。要使用抽象类,需要首先创建一个类继承抽象类,然后实例化这个继承类的对象。继承抽象类意味着你必须实现所有抽象方法。通过继承抽象类并创建实例,你可以充分利用抽象...
Java编程中的抽象概念应该怎样理解?
抽象类是不能被实例化的类,它们通常包含至少一个抽象方法(没有实现的方法)。抽象类的主要目的是为其他类提供一个公共的类型和协议,即定义一组属性和方法,这些属性和方法必须在继承该抽象类的具体类中实现。通过这种方式,抽象类强制其子类遵循特定的结构和行为。抽象方法(Abstract Method):抽象方法...
抽象类为什么不能实例化?
抽象类为什么不能实例化对象:因为抽象类中包含有没有定义的函数,因此不能用抽象类来实例化对象。但可以声明抽象类的指针指向派生类。示例:class A{public: virtual void f()=0;}; //声明一个抽象类 class B:public A{public: void f(){cout<<"B"<<endl;};void main(){A ma; //错误...
java中抽象类和接口的区别?
1. 定义方式:抽象类是一种包含抽象方法和可能不包含实现的方法的类,它不能被实例化;而接口是一种完全抽象的类,它只包含方法的声明而不包含实现,所有方法都是公开的,并且可以被多个类实现。2. 继承限制:Java中每个类只能继承一个抽象类或接口,但可以实现多个接口。这意味着接口提供了更多的灵活...
Java中的抽象类为什么不能实例化
首先抽象类不能实例化是一个java的语法规范。抽象类中是可以包含抽线方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下又没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须...
java抽象类不能实例化?
很简单,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor,jet,fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个...
什么样的抽象类不能产生类的实例(怎么定义抽象类)?
抽象类可以有构造函数,但是它不能被用来创建对象,只能被子类调用。抽象类可以拥有变量,可以是常量或者是静态变量,但是不能拥有非静态的属性。在Java中,如果出现下面两种情况之一,那么这个抽象类就不能被实例化:抽象类中没有声明抽象方法 abstract class Example { int number;void display() { Syste...
java中,抽象方法一定要在抽象类中吗???
是的,抽象类中可以没有抽象方法,但是抽象方法一定在抽象类中。因为抽象方法和抽象类一样,不能被实例化。
java抽象类可以实例化吗
抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了)