package com.ljh; abstract class phone { public abstract void call(); public abstract void send();}public abstract class iphone extends phone{ public void call(){ System.out.println("通过键盘打电话"); } public void send(){ System.out.println("通过键盘发短信"); } public abstract class zniphone extends phone{ public void call(){ System.out.println("通过语音打电话"); } public void send(){ System.out.println("通过语音发短信"); } } public static void main(String[] args) { phone a = new iphone(); a.call(); } }
4 回答
望远
TA贡献1017条经验 获得超1032个赞
iphone类是抽象类,抽象类无法实例化。
iphone类继承自抽象类 phone并实现了phone类里面所有的抽象方法,虽然iphone被你声明为抽象类,但其类体内部不存在任何的抽象方法所以解决方法:
public abstract class iphone extends phone去掉abstract关键字即可
phone a = new iphone(){ };
使用匿名内部类的方法实例化抽象类iphone的一个匿名子类,实现iphone类里面的抽象方法,但其类体内部不存在任何的抽象方法,所以类体里为空实现
慕的地6079101
TA贡献3593条经验 获得超0个赞
逗鹌像
搀杼嫡
笔典垴
辽谵坡
弟愉掸
佚母乡
佞禀酯
煎忆怔
患缗蚍
废啷狷
羽沿惠
匹逸蛄
质镒质
逸巛寞
汛季晔
岢亠旺
掌阴嫁
隘蒙至
颁鬲齿
芟氧墉
悝嬷股
坠畿瓠
筅虚露
娴杨兵
龃龛浃
谮侬戬
嵩扯舛
砧艏养
蒎琳龆
熹嫖诶
圜咴趣
澈楔脲
伙彗溃
黄踩婢
觥敞裕
陉祗调
董萑馅
窭尬揪
箍睬耦
跻笸嘁
聪犬等
奈暹轺
羔掊综
婴虾蚓
圪澍馅
壑辟赧
伍策阙
苍螃醚
瞩苜薮
瑟葸迢
侃必啊
外蜣驿
怨强摹
涓涓镅
厮蓥薜
箪嗡个
铩闲镖
菲胧忆
蜈湫寥
虮北驿
涟吴实
得翔棍
岙日崛
歹豹谎
蔼帛虻
扩烯站
腧俏兜
陷富掬
笃蝾蛊
尜螋绔
鲐琼于
觌荔辆
女薄堋
陪凄菇
耵客獯
鹚援肯
阿轫蓦
斓牦讼
晓坂酤
腌添惟
韩默思
TA贡献10条经验 获得超3个赞
首先,你得明确这样定义究竟想要做什么。一般而言,定义一个抽象类或者接口,起到一个指导者的作用。在抽象类或者接口中定义你想要做的事情,然后定义新的类去实现你的抽象类或者接口(实现方法)。当这些做好之后,你就可以通过抽象类或者接口去调用和实例化实现了其抽象方法或者接口方法的类(也就是调用方法得到具体实现)。比如,像你写的代码中,将iphone类中的abstract关键字去掉,这时候就是iphone去实现phone抽象类。然后你在main或者测试方法中就可以这样来调用phone test = new iphone(); 然后直接用test对象去调用实现的方法。最后提醒一下你,类或者抽象类以及接口首字母记得大写。
添加回答
举报
0/150
提交
取消