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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓飞飞 中级黑马   /  2012-4-14 16:54  /  1651 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Employee//这是一个视频中的例子,按理说抽象方法一定定义在抽象类中,为什么这个类中有个抽象方法而这个类不是抽象的呢?
            {
                  private string name;
                  private string id;
                  private double pay;
                   Employee(string name,string id,double pay)
                      {
                            this.name=name;
                            this.id=id;
                             this.pay=pay;
                      }
                   public abstract void work();
              }
            class Manager extends Employee
              {
                private int bonus;
                Manager(string name,string id,double pay,int bonus)
                        {
                           super(name,id,pay);
                            this.bonus=bonus;
                         }
                 public void work()
                    {
                          System.out.println("manager work");
                      }
              }
             class Pro extends Employee
               {
                   class Pro(string name,string id,double pay)
                        {
                           super(name,id,pay);
                         }
                   public void work()
                       {
                             System.out.println("Pro work");
                        }
                 }
                public class  AbstactDemo
                      {

                         public static void main(String[] args)
                                {
                                Manager man=new Manager(zhansan,01,100.00,400 );
                                    Pro p=new Pro(lisi,05,200.00);
                                    man.work();
                                    p.work();
                                  }
                      }

4 个回复

倒序浏览
一个类中如果有抽象方法那么这个类一定是抽象类,应该在类前面加上abstract关键字来修饰,而楼主你的代码我编译过了,会出错的。你看清楚是不是有这样的一回事

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
抽象类可以有抽象方法和非抽象方法(一般的成员方法),但是如果一个类中含有抽象方法,则必须声明为抽象类(当然也可以声明为接口)。
这个类必须是抽象的!

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
你这段代码错的离谱。
你应该知道的一些关于抽象类的细节:
        1,抽象类中是可以定义非抽象方法的。
        2,抽象类中有构造函数。
        3,抽象类通常都是一个父类。
        4,抽象类中可以不定义抽象方法。
        5,有抽象方法的类就必须定义为抽象类。
        6,abstract关键字不可以和final,static&private关键字共存。

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
只要类中含有抽象方法,那么这个类就必须定义为抽象类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马