JAVA 用接口来声明数组的类型?

interfacePet{}classPetShop{privatePet[]pets;}这是一个程序的一部分,问题是privatePet[]pets;这个声明的是一个以... interface Pet{

}

class PetShop{
private Pet[] pets;
}

这是一个程序的一部分,问题是private Pet[] pets;这个声明的是一个以引用类型声明的数组,可以这样声明吗?接口不是不能被实例化吗?如果这样声明意思不就是名称为pets的数组,它的每一个元素都是Pet这个类的一个实例,但是在经典的宠物店模型里就是这么写的,怎么理解?!
展开
 我来答
jamxval
推荐于2017-11-26 · TA获得超过6823个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1438万
展开全部
面向对象里面子类的实例都可以赋值给父类的。
所以 pets[0] = new Cat(); pets[1] = new Dog(); ...

把共性列出来把不同点隐藏这个过程叫抽象化。便于关注功能和理顺逻辑,而不要被细节局限,比如今天你只认识两种宠物,明天外国人带来一个你从未见过的宠物你的程序也能工作,那就是一个好的程序设计。如果你按你所见过的宠物需要吃什么喝什么来实现程序,那以后就可能新的宠物适应不了。所以在面对具体实现方法之前不要把它们想得太具体,只描述应该达到什么功能,比如:我们需要的是解决宠物的问题,不要管猫和狗吃作息习惯有什么不同,你只要描述吃饭睡觉这些功能,在树上睡还是在地上睡没关系。
arthfgu
2018-04-02
知道答主
回答量:1
采纳率:0%
帮助的人:888
展开全部
通过数组定义来引用类,不会触发类的初始化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式