「java抽象类实例化」java抽象类如何实例化对象
本篇文章给大家谈谈java抽象类实例化,以及java抽象类如何实例化对象对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java,抽象类实例化?
- 2、java抽象类不能实例化?
- 3、java抽象类怎么实例化了
- 4、“java抽象类”不能被实例化是什么意思?
- 5、java中抽象类可以被实例化吗
- 6、抽象类为什么不能实例化?
java,抽象类实例化?
兄弟,仔细看,new AbstractFather(){ .. }; 跟的是大括号,表示是个匿名内部类,new 的是抽象AbstractFather类的实现类。
只是这个实现类很特殊,是以匿名内部类的形式实现的。
java抽象类不能实例化?
很简单,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor,jet,fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
java抽象类怎么实例化了
抽象类是不能实例化的,抽象类只是定义了一些通用的实现、规范,一般都是用抽象类的子类的实例对象
“java抽象类”不能被实例化是什么意思?
Calendar c = new Calendar(); 出现 new Calendar()就会执行实例化一个对象了。所以如果是抽象类就不能这样new的。要new 它没有abstract的子类。\x0d\x0a\x0d\x0a抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法。\x0d\x0a1、抽象类可以不包括抽象方法,它反正不会去实例化,抽象类不能被实例化,也就是不能用new关键字去产生对象,抽象方法只需声明,而不需实现,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类,里面的方法是不是抽象的没有本质影响。\x0d\x0a2、但是含有抽象方法的类绝不能被实例化,否则执行这个方法的时候,怎么办?\x0d\x0a3、如果子类是非抽象的,那么它就必须实现父类中的抽象方法;否则,它继承来的抽象方法仍然没有方法体,也是个抽象方法,此时就与“含有抽象方法的类必须是抽象类”相矛盾了。\x0d\x0a\x0d\x0a抽象类与接口紧密相关,它们不能实例化,并且常常部分实现或根本不实现。抽象类和接口之间的一个主要差别是:类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承。从抽象类派生的类仍可实现接口。可以在创建组件时使用抽象类,因为它们使您得以在某些方法中指定不变级功能,但直到需要该类的特定实现之后才实现其他方法。抽象类也制定版本,因为如果在派生类中需要附加功能,则可以将其添加到基类而不中断代码。\x0d\x0a\x0d\x0a在实现抽象类时,必须实现该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值。\x0d\x0a
java中抽象类可以被实例化吗
//抽象类!
abstract class A
{
//方法1:抽象方法!
abstract void show();
//方法2:非抽象方法!
public void method()
{
}
}
/*
这是一个合法的抽象类,里面可以包含抽象方法和非抽象方法;
假如都如同方法2,要是不能被实例化,还能找点借口和理由!
但是:
如果是方法1,怎么样?
那方法根本没有方法体..你说,就算能让你实例化,你的对象方法里面
会是什么?
这么说明白了吗?
所以就有了Java的规定,抽象类需要被继承以后才可以实例化!
其实如果抽象类里面是可以全部放法非抽象方法的,这也是一个结构..用静态来访问,具体用处
暂时我也还不知道,但是可以这么做!(这点说的是废话,额外小知识!)
*/
抽象类为什么不能实例化?
抽象类的概恋:
抽象类:就是包含有未定义的虚函数的类,也就是说只在类中声明了一个抽象类,但没有具体定义,或者把虚函数定义为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抽象类实例化的信息别忘了在本站进行查找喔。