永发信息网

抽象类,实例化 ,谁能解释下这是什么东西

答案:6  悬赏:0  手机版
解决时间 2021-12-23 04:55
abstract class Test{ abstract String getname();}Test test = new Test(){ String getname(){ return "name"; }};
最佳答案
首先,抽象类不能直接new 对象(但是可以父类引用指向子类对象)

你的例子中,abstract class Test{
abstract String getname();
}
是一个抽象类,所以不能通过Test test=new Test()来new对象

但是,Test test = new Test(){
String getname(){
return "name";
}
}中的new Test(){
String getname(){
return "name";
}
},实际上相当于是一个实现了Test抽象类的对象(实现了抽象方法getname()),所以可以用new了
只不过,这里是一个匿名类罢了
不知道这么解释,你理解么???

还有不理解的话,可以追问
全部回答
{ String getname(){ return "name"; } 这是一个匿名类(可以说是没有名的类)覆写了Test中的抽象方法。
对。抽象类是不能被实例化的。抽象类可以很方便的解决很多问题。通常用于多态。决个简单例子吧,比如我们有一个eat(food food)方法。food是抽象类。beef、meat类继承并实现了这个抽象类。可以写 food beef=new beef();food meat=new meat(); 这是我们不管他是beef还是meat都可以直接调用eat(beef)和eat(meat),这样省去了很多麻烦
定义类的时候前面abstract修饰的为抽象类,抽象类中所有的方法都必须得是抽象的方法,想实例化抽象类则必须重写其中的抽象方法: abstract class Test{ abstract String getname(); } 上面的代码为定义了抽象类Test Test test = new Test(){ String getname(){ return "name"; } }; 上面的代码为实例化抽象类的一个对象,即new了一个该类的对象test,因为调用了该类的对象,所以重写类类中的方法,即 String getname(){ return "name"; }
抽象类:不允许被实例化的类,简单理解为不能直接进行new操作。 abstract class Test{ abstract String getname(); } 测试的抽象类,比如药物的测试,饮料的测试,肉类的测试,那么他们都有一个共同的方法,即:返回测试的名称;这个就可以抽象出来,更具有普遍含义。 之所有不能实例化抽象类,因为它包含抽象方法。 Test test = new Test(){ String getname(){ return "name"; } }; 这个相当于覆写了Test类中的抽象方法,所以此处可以进行实例化 --------------------------------------------------------------------------------- 个人拙见,仅供参考!!
new Test()后面,是匿名类,可认为实现了抽象类Test的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
依次填入下列句中空缺处的词语恰当的一项是D
梦见抱别人的小女孩
过期的食用油还能吃吗?
美的kfr-72lw/bp3dn1y-c空调怎么拆开洗视频解
慢慢的长夜是什么歌
制做松花蛋用的泥灰主要配料有:纯碱、食盐、
自然承诺的面膜产品贵吗?
keep sb doing sth造句
求文学史上“发愤著书”的例子
单选题下列物质中,前者是单质,后者是混合物
如何重新办理户口?
踏步机减小肚子有效果吗
山西省绛县体育局在什么地方啊,我要处理点事
单选题在“探究花生果实大小的变异”活动中,
日月如梭用英语怎么说
推荐资讯
掌纹三条线
联想g475换个电脑散热器风扇多少钱
抚顺市顺城区检察院位置在什么地方啊,我要过
我办理的买房是按揭,可是开发商让交全款我该
临颍县城关派出所在什么地方啊,我要处理点事
新版快手怎么保存视频
相依相偎用繁体字或火星文怎么写啊
华腾电脑地址好找么,我有些事要过去,
工行杭州湾庵东支行在什么地方啊,我要处理点
乞丐阅读答案
每次跟老婆吵完架,她都不理你,不和你说,对
元用五笔怎么打
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?