有如下代码:
//User抽象类
abstract class User
{
public void chongzhi()
         {
System.out.println("在线充值");
}
}
//普通用户
class SimpleUser extends User
{
//升级为会员
public void shengji()
{
System.out.println("是否升级为VIP用户?");
}
}
//VIP用户
class VIPUser extends User
{
//去广告功能
public void noAd()
{
System.out.println("是否屏蔽广告?");
}
}
//程序入口
public class Program 
{
public static void main(String[] args) 
{
User user = new SimpleUser();
user.chongzhi();
}
}
我先声明了一个抽象User类,抽象User类中有个函数chongzhi();然后声明了一个SimpleUser类并继承User类,SimpleUser类中还有它自己的函数shengji();最后我在main方法里用User user = new SimpleUser();来实例化一个SimpleUser类。
现在我的问题来了,在main方法里要如何调用SimpleUser类中的shengji()方法?
多谢大哥大姐们指教!

解决方案 »

  1.   

        public static void main(String[] args) 
        {
            User user = new SimpleUser();
            user.chongzhi();
            //if (user instanceof SimpleUser) { //强行转换前,做个判断比较合理
                ((SimpleUser)user).shengji(); //强行转换
            //}
        }
      

  2.   

    既然是new SimpleUser出来的,强制转型回SimpleUser再调用shengji()方法不行吗?User法没shengji方法,用不了的。