「java抽象类能实例化吗」java抽象类能实例化吗

博主:adminadmin 2023-03-19 04:19:07 387

本篇文章给大家谈谈java抽象类能实例化吗,以及java抽象类能实例化吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中抽象类可以被实例化吗

//抽象类!

 abstract class A

{

//方法1:抽象方法!

abstract void show();

//方法2:非抽象方法!

public void method()

{

}

}

/*

这是一个合法的抽象类,里面可以包含抽象方法和非抽象方法;

假如都如同方法2,要是不能被实例化,还能找点借口和理由!

但是:

如果是方法1,怎么样?

那方法根本没有方法体..你说,就算能让你实例化,你的对象方法里面

会是什么?

这么说明白了吗?

所以就有了Java的规定,抽象类需要被继承以后才可以实例化!

其实如果抽象类里面是可以全部放法非抽象方法的,这也是一个结构..用静态来访问,具体用处

暂时我也还不知道,但是可以这么做!(这点说的是废话,额外小知识!)

*/

Java中的抽象类为什么不能实例化

首先抽象类不能实例化是一个java的语法规范。

抽象类中是可以包含抽线方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下又没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须实现父类的所有抽象方法。之所以在java变成中存在这样一个语法规范,就是为了定义这种类型结构来解决生活中这样的一些实际问题。

比如举一个简单例子:

父亲(抽象类)是一个残疾人,他一生都想着要去见义勇(父类的抽象方法)为帮助他人,但是由于自生残疾行动不便,然后他就要求其所有的儿子(继承自抽象类的子类)能实现他的这个愿望(继承父类的抽象方法)。然而每一个儿子在实现父亲想见义勇为这个愿望的时候,每个儿子的做法是不一样的。大儿子喜欢这种方式的见义勇为(子类一有其自己的实现方法),二儿子喜欢其他的见义勇为的方式(子类二有其自己的实现方法)....因此java的抽象类就是用在这种场景中,解决这种问题的。

java抽象类不能实例化问题

很简单,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor, jet, fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化

抽象类为什么不能实例化?

抽象类的概恋:

抽象类:就是包含有未定义的虚函数的类,也就是说只在类中声明了一个抽象类,但没有具体定义,或者把虚函数定义为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抽象类可以实例化吗

抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了)

java抽象类能实例化吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java抽象类能实例化吗、java抽象类能实例化吗的信息别忘了在本站进行查找喔。