抽象类

抽象类作为数据类型,创建一个抽象类型的数组:

abstract class Fruit{};

new Fruit[10];

这时抽象类Fruit并没有创建对象,即没有实例化

抽象类可以有构造方法,接口中不能有构造方法。

抽象:abstract

 1、特点:
  1)抽象类不能实例化
  2)一定存在子类,待子类实例化
  3)抽象类一定存在构造器,符合子类实例化规则
  4)不能使用final 
  5)可能存在抽象方法:抽象方法:存在由abstract修饰的方法,没有方法体
 2、与具体类的区别
 1)、具体类:属性、常量、构造器、具体方法、构造块、静态块
 2)、抽象类:属性、常量、构造器、具体方法、构造块、静态块、抽象方法  
 二、抽象类与抽象方法的关系
 1、抽象类可以没有抽象方法
 2、抽象方法一定存在于抽象类中
 三、抽象类与子类
 1、抽象子类:按需实现抽象方法,其他非抽象方法按需重写
   待子孙类实现,继承链上相同的抽象方法,实现一次即可
 2、具体子类:必须实现抽象方法,其他非抽象方法按需重写 
 实现抽象方法:必须符合重写规则
四、抽象类:模板(实现+抽象) -->部分抽象
 抽象、规范:规定子类必须实现 
 模板模式|钩子模式|函数的回调

例:public abstract class Animal {
        public abstract void breath();
        public abstract void run();
        public abstract void jum();
}

五、子类实例化的时候会调用它父类的默认构造方法,抽象类可以有构造方法,构造方法不可继承,但是可以供子类用super()或者super(参数,参数……)调用。

构造方法的作用是初始化对象

局部变量没有默认值,没有初始化就不能使用,否则throws NullPointerException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值