社区
Java SE
帖子详情
抽象类不能被实例化。但是为什么可以这样写?
myepoch
2005-06-28 04:30:49
抽象类不能被实例化。如:Person类是抽象类。
Person p=new Person("abc');//错误
但是为什么可以这样写:
Person[] p=new Person[2];//OK
...全文
369
18
打赏
收藏
抽象类不能被实例化。但是为什么可以这样写?
抽象类不能被实例化。如:Person类是抽象类。 Person p=new Person("abc');//错误 但是为什么可以这样写: Person[] p=new Person[2];//OK
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
plovej
2005-06-29
打赏
举报
回复
好象都没讲到点子上啊??
Person[] p=new Person[2]
这样初始化以后有怎么用 p 呢??
huwen_83
2005-06-29
打赏
举报
回复
建议楼主花点时间搞清楚JAVA的内存管理机制。
wddodo
2005-06-29
打赏
举报
回复
同意Dan1980(也该有一些作为了)的观点!
Dan1980
2005-06-29
打赏
举报
回复
建议楼主去看看SCJP方面的教材, 数组初始化是SCJP要考核的一个重点, 楼主不能理解这一点对以后深入学习很不利的.
主要要区分的是"数组"的初始化和"数组元素"的初始化, 这是两个不同的方面, 数组初始化并不代表数组元素也初始化.
star_str
2005-06-29
打赏
举报
回复
好象都没讲到点子上啊??
Person[] p=new Person[2]
这样初始化以后有怎么用 p 呢??
这个P就是一个数组对象的引用,你说怎么用!!!
你怎么用变量就怎么用它
yangbc
2005-06-29
打赏
举报
回复
搂主,我想你这个应该也不懂吧
int[] i=new int[12];
如果是局部变量,你看看每个i[]里有没有值
不徻写代码
2005-06-28
打赏
举报
回复
别钻牛角尖
star_str
2005-06-28
打赏
举报
回复
抽象类不能被实例化。如:Person类是抽象类。
Person p=new Person("abc');// 错误,只有no-arg的构造函数才可以构造对象,实现引用
但是为什么可以这样写:
Person[] p=new Person[2];// 正确, 这个是初始化操作
等同与
Person[] p = new Person[]
p.length = 2
mxbprogramming
2005-06-28
打赏
举报
回复
顶
wjr1982et
2005-06-28
打赏
举报
回复
Person[] p=new Person[2];没有调用Person类中的构造函数.
farmer0512
2005-06-28
打赏
举报
回复
Person[] 是一个数组对象,不是Person对象。new Person[2] 是设置两个放置Person对象的内存空间里面并没有产生Person对象的实例。
myepoch
2005-06-28
打赏
举报
回复
为什么Person[] p=new Person[2];既然已经生成了Person对象,没有被实例化呢?
Dan1980
2005-06-28
打赏
举报
回复
xqk(夏乾坤) 的说法太模糊了, 举的那个例子也是风马牛不相及.
Person[] p=new Person[2];
这句确实创建了一个对象, 不过不是Person对象, 而一个数组对象. 这个数组是用来包含Person类的实例的, 但是还没有任何Person类的实例被创建, 所有的数组无素都是null.
ccghghgj
2005-06-28
打赏
举报
回复
FDSAFDAS
================================================================
灌水机器人
================================================================
xqk
2005-06-28
打赏
举报
回复
既然是数组,说明只是初始化该对象的引用,并没有创建该对象的实例
引用和实例是两个概念
就好比如下的示例也是两个概念
String str = "111";
String str = new String("111");
HitXU
2005-06-28
打赏
举报
回复
Person[] p=new Person[2];
没有生成任何Person类对象
yanloveyan2004
2005-06-28
打赏
举报
回复
Person[] p=new Person[2];//是初始化数据,并没有初始化p中的元素!p[0]=null;p[1]=null;
dext
2005-06-28
打赏
举报
回复
对呀!这只是申明了一个数组!他的长度是2
并没有调用所谓的构造函数。
和C++不太一样
“为什么
抽象类
不能
被
实例化
?”
之前上课老师有问到过:“为什么
抽象类
不能
被
实例化
?” 我也看了很多大佬们的帖子,都
写
得很好很棒!但是有一些说法我个人可能觉得有点问题: 比如:第一个观点:" 什么是
抽象类
? 抽象:就是不具体的意思。 类是对对象的具体描述,而
抽象类
不具体,没有方法体,(提供的成员不足以生成一个具体对象),那么就无法生成一个不具体的对象。就好比,你可以
实例化
一个苹...
Java
抽象类
为什么
不能
被
实例化
问题背景 在理解
抽象类
为什么
不能
被
实例化
之前,首先我们要了解以下几个问题。 问题一:什么是
抽象类
?
抽象类
是Java中一种特殊的类,该类使用了abstract关键字进行修饰,该类允许有普通方法和抽象方法,该类
不能
够进行
实例化
(这个在后面进行解释)因为
抽象类
不能
直接
实例化
,所以必须需要有实现子类。 问题二:为什么要有
抽象类
?
抽象类
是介于接口与普通类之间的一种结构,接口中定义的都是抽象方法,而类中都是普通方法。当我们存在一类事物,他们大多数结构和功能存在雷同,只有少部分存在不同,如果我们直接使用子类实现接口
带你了解什么是
抽象类
,
抽象类
不能
够被
实例化
为什么还有构造方法?
接口是我们常用的,
抽象类
好像并不是怎么常用,但这并不代表他不重要,他可以被继承,可以有构造方法,可以给类中的成员变量赋初值,接口就没有这样的功能。
抽象类
的出现使得位于上层的类更具有通用性。从某种角度来看,祖先类更加具有通用性。 普通类加abstract即为
抽象类
。
抽象类
不能
够被
实例化
,也就是说
抽象类
为什么
不能
被
实例化
?
今天无意中看到一个问题:为什么
抽象类
不能
实例化
? 很多人的答案都是再说使用
抽象类
的好处,但是并没有回答为什么
不能
实例化
?这个过程就像是在回答:为什么公鸡
不能
下蛋?然后回答是使用公鸡可以打鸣。 按照我的理解,如果不对,欢迎补充。 答案是规定。 为什么我这么理解,原因有以下几点。 第一点:回归问题最初,我们为什么要
实例化
? 我们先逆向思维来考虑,从面向对象的思想来看: 我们需要完成实现一个功能,而...
不能
实例化
抽象类
&
抽象类
不能
实例化
在c++和java中我们会定义很多类,但是我们会遇到在对类进行new
实例化
时会遇到“
不能
实例化
抽象类
”或者“
抽象类
不能
实例化
”,针对这个问题要首先理解两个内容“
抽象类
”和“
实例化
” 如果只是想单纯的理解,那么意思就是你画了一个有四条边的图形你说是矩形 但是这是不可以的,为什么?因为矩形还有一个条件就是要四个内角是直角 其中画有四条边的图形就是
抽象类
,矩形就是
实例化
如果理解了含义但是不懂代码中的定义,那么那么就百度百度定义!定义真的很重要!
抽象类
定义: 含有纯虚函数的类称为
抽象类
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章