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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我心飞翔 黑马帝   /  2011-12-21 00:16  /  3036 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我心飞翔 于 2011-12-23 13:43 编辑

怎么样去用方法调用已经封装的抽象类?

5 个回复

倒序浏览
抽象类不可以用new创建对象,因此调用抽象方法没有意义
抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,才能建立子类对象调用有具体方法体的方法。
回复 使用道具 举报
张帅 黑马帝 2011-12-21 00:51:14
藤椅
这个啊,黑马毕老师的视频里是这么说的
分情况,因为抽象类中分为,抽象方法和非抽像方法,只能单继承
抽象方法,没有方法体,需要子类对象,重写后,才可以调用,即对象名.函数名,注意,抽象类不可以 new 本类对象,如果子类只覆盖了部分抽象方法,该子类还是一个抽象类,所以全部重写,非抽象函数则不用
非抽象方法,也可以使用对象名.函数名调用,也可以直接使用 类名.函数名,但是前提是,该函数,需要 static修饰,且没有private
例子
  1.         abstract class Employee{
  2.             private String name;
  3.             private String id;
  4.             private double pay;
  5.             
  6.             Employee(String name,String id,double pay){
  7.                 this.String name = name;
  8.                 this.String id = id;
  9.                 this.pay = pay;
  10.             }
  11.             
  12.             public abstract void work();
  13.         }

  14.         class Manager extends Employee{
  15.             private int bonus;
  16.             Manager(String name,String id,double pay,int bonus){
  17.                 super(name,id,pay);
  18.                 this.bonus = bonus;
  19.             }
  20.             public void work(){
  21.                 System.out.println("Manager work");
  22.             }
  23.         }

  24.         class Pro extends Employee{
  25.             Pro(String name,String id,double pay,int bonus){
  26.                 super(name,id,pay);
  27.             }
  28.             public void work(){
  29.                 System.out.println("Pro work");
  30.             }
  31.         }
复制代码
以上是我的学习笔记,如有错误请指正

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 guofansen 于 2011-12-21 00:58 编辑

抽象类中的抽象方法要被使用,必须由子类复写其所有的(如果子类只是覆盖了部分抽象方法,那么该子类还是一个抽象类)抽象方法后,建立子类对象调用。


评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
抽象类中的方法要通过子类的继承。再通过建立子类的对象来调用父类中方法。
如果抽象类中的这个方法不是抽象的,也可以把它用静态修饰,然后通过类名调用

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
使用到一个抽象类的功能成员方法时,由于抽象类不能直接定义对象,所以也无法直接引用,常用的的有三种方法:
1,抽象类的子类对象。为了使用上的方便,Java在设计的时候,一般情况下,抽象类都有自己已实现的子类,通过创建子类对象来使用抽象类的方法。这种情况属通用方法。
2,匿名类。需要使用方法的时候,直接定义一个匿名类,在匿名类中实现需要使用的方法,直接调用就可以。使用匿名类有个限制,如果所使用的抽象类中有三个及以上的抽象方法时,不建议使用匿名类,因为使用匿名类的特点就是要实现所有的抽象方法,如果抽象方法太多的话,会很痛苦的。
3,继承。这个和匿名类的原理基本上一样,继承抽象类,在子类中实现所有的抽象方法。然后在定义该子类的对象去调用。如果自己定义的抽象类的话,可以使用该方法,调用抽象类的成员方法。如果是Java中的抽象类的话,直接在JDK中查找该匿名类的子类即可。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马