A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract class gaga{
        abstract void haha();
      
}
class shabi extends gaga{
        void haha()
        {
                System.out.println("good morning");
        }
static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??
        {
                System.out.println("what are you doing");
        }
}
public class good {
        public static void main(String [] args)
        {
                shabi g=new shabi();
                shabi.c();
                g.haha();
        }
}

2 个回复

倒序浏览
楼主,你的程序我运行没有问题,其中static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??其实这句话是不用被定义为抽象方法的,因为父类gaga中只有一个静态方法,而你在子类中已经将其覆盖重写了。
   关于继承抽象类的使用,
    1.子类必须将父类中的方法覆盖重写
    2.抽象类中可以没有抽象方法,但存在抽象方法的类必须是抽象类。
   这两点希望楼主记住,还有楼主的书写格式应该规范下!

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1 书写格式确实是个大问题!

查看全部评分

回复 使用道具 举报
能吐槽下你的类名么{:soso_e146:}
static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??
        {
                System.out.println("what are you doing");
        }
这个方法不是抽象的完全没问题的说。
一个类继承自抽象类,则该类必须重写父类的所有抽象方法,否则,该类将保留父类的抽象方法,本身就会变成抽象类,但是你的类已经复写了父类的所有方法,也就不会变成抽象类。既然不是抽象类,里面肯定没有抽象方法。而且如果c()方法是抽象的,那么在main()方法中的实例化这个类就会出错、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马