JAVA面向对象抽象类

一、抽象类
1、面向对象的核心–面向抽象编程;

抽象类:包含了抽象方法的 类 就是抽象类;

抽象方法:方法中不包含函数体的方法,称为抽象方法;抽象方法必须在子类中给出具体实现,但抽象类本身不能创建对象。

例:public     abstract      class       ChouXiang{                //抽象类         类中间接或者直接  包含抽象方法     就是抽象类

              public    abstract     void      DuiXiang()              //抽象方法                抽象类  不含有方法体  例如     public    abstract     void      DuiXiang()  {   }   这个不是抽象方法,,只是  函数体为空的普通方法。

}

2、抽象类的特点:
方法只是声明,但是并没有实现时候,这个方法就是抽象方法 ,,需要被abstract修饰 否则会语法报错。抽象方法也必须定义在抽象类中,抽象类一样需要用abstract修饰。

(1) 定义抽象类 时候可以包含抽象方法,但是不能实例;也可以不包含抽象方法

(2)抽象方法 可以定义构造器,抽象类的构造器 和普通方法的构造器相同。

(3)抽象类中 可以定义成员 可以定义静态成员,但是静态方法 不可以是抽象。

(4)抽象类的子类 必须直接或者间接给父类(抽象类) 中所有的抽象方法提供实现,否则子类 必须 也 抽象。

3、构造器

1.抽象类中可以定义构造器,也可以不定义构造器,使用系统默认提供的无参构造器,但是自定义构造器不能private
2.抽象类不能是fnal class,fnal类不能被继承,从语法的角度上说不允许继承,不是构造器的原因。

4、抽象类不可以被实例化
抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则这个子类还是抽象类强调:注意抽象类中可以包含构造器、析构器、抽象方法和方法以及静态方法等,也可以没有抽象方法。
5、什么时候使用抽象类?

(1)、当一个类的一个或多个方法为抽象方法时

(2)、当该类为一个抽象类的子类,并且没有为所有抽象方法提供实现细节或方法主体时

(3)、当一个类实现一个接口,并且没有为所有抽象方法提供实现细节或方法主体时

6、抽象类和普通类的区别:

抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值