java为什么匿名内部类不能定义构造器?

interfaceProduct{publicdoublegetPrice();publicStringgetName();}publicclassTest{public... interface Product

{
public double getPrice() ;
public String getName() ;
}
public class Test
{
public void test(Product p)
{
System.out.println("购买了一个" + p.getName() + " , 花掉了" + p.getPrice());
}
public static void main(String args[])
{
Test ta = new Test() ;
ta.test(new Product()
{
int i ;
Product(int i) //为什么匿名内部类不能定义构造器?
{
this.i = i ;
}
public double getPrice()
{
return 12;
}
public String getName()
{
return "先科";
}
});
}
}
展开
 我来答
蓝风水晶灵
2014-03-23 · TA获得超过934个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:437万
展开全部
因为匿名内部类没有类名(至少是明面上没有),不然为何叫匿名?

构造器是要有类名的。
不过有种方式可以起到构造器的作用,但有局限性,那就是“构造代码块”
yihuishuihua
2014-03-23 · TA获得超过186个赞
知道答主
回答量:99
采纳率:0%
帮助的人:50.1万
展开全部
这个匿名内部类还没有试过,不过可以理解,匿名内部类一般只使用在代码片段中,使用后就被gc回收。如果要多次使用,即需要后续创建对象才会提供构造方法。所以。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Scotty19900507
2014-03-24 · 超过18用户采纳过TA的回答
知道答主
回答量:110
采纳率:33%
帮助的人:22.3万
展开全部
匿名内部类不能定义构造器就因为他没有类名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式