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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飞龙传神 中级黑马   /  2015-8-17 23:02  /  300 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类:一个不是具体的功能,称为抽象功能. 一个类中如果有抽象方法,该类则称为抽象类
抽象类和抽象方法的格式:
  抽象方法:public abstract void 方法名();
   非抽象的方法必须有方法体
  抽象类:abstract 类名 {}

抽象方法不能有方法体 public abstract void eat();  不能有大括号

抽象类的特点:
  A.抽象类和抽象方法必须用abstract关键字修饰
   abstract class Animal {}
   public abstract void eat();
  B.抽象类中不一定有抽象方法, 有抽象方法的类必须定义为抽象类
  C.构造方法: 可以有构造方法
   用于子类访问父类数据时的初始化
  D.抽象类不能实例化
   因为他不是具体的
   抽象类有构造方法,但是不能实例化
   通过多态,实例化
   抽象类的构造方法用于继承中子类访问父类时对父类初始化
  
  E.抽象类的子类
   a.如果不重写抽象方法,抽象类的子类是一个抽象类
   b.重写抽象类的所有抽象方法, 该类是一个具体的类

抽象类的成员特点:
  成员变量:可以是变量,也可以是常量
  构造方法:有
   用于子类访问父类时对父类数据初始化
  成员方法:既可以是抽象方法,
    也可以是非抽象的
  抽象类的成员方法特性:
   A:抽象方法:强制子类要做的事情
   B:非抽象的方法: 子类继承的方法,提高了代码的复用性

抽象类的几个小问题:
  A.一个类如果没有抽象方法,可以定义为抽象类
   目的在于不让创建对象
  B.abstract 不能与哪些关键字共存
   private 冲突
    private abstract void show ();
    private修饰的方法不能被继承
   final 冲突
    final修饰的方法不能被重写
   static 无意义
    抽象方法没有方法体,而静态方法可以通过类名调用
    调用没有方法体的方法无意义
   

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马