为什么无法实例化iphone phone a = new iphone();
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(); } } |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
iphone类是抽象类,抽象类无法实例化。
iphone类继承自抽象类phone并实现了phone类里面所有的抽象方法,虽然iphone被你声明为抽象类,但其类体内部不存在任何的抽象方法所以解决方法:
- public abstract class iphone extends phone去掉abstract关键字即可
- phonea=newiphone(){ };使用匿名内部类的方法实例化抽象类iphone的一个匿名子类,实现iphone类里面的抽象方法,但其类体内部不存在任何的抽象方法,所以类体里为空实现
|
|
|
|
|
既然Phone是抽象类,那么继承他的类就不用再用abstract了。把iphone上面的abstract去掉就可以了。 |
|
|
|
|