Java抽象类与抽象方法

 抽象:abstract
   是具体的反义词
   和模糊,不确定,不清晰有的类似
   
  1、什么情况下会用到抽象?
   当我们在声明一个父类时,某个/些方法的实现不清楚,或者说无法给出具体的实现,
   要等到具体的子类中才能给出具体的实现,那么这样的方法,就可以声明为抽象方法。
   
   抽象方法没有方法体
   
  2、抽象方法
  语法格式:
      【其他修饰符】 abstract 返回值类型   方法名(【形参列表】); 
  
  3、抽象类
      如果一个类中包含了抽象方法,那么这个类必须是一个抽象类。
  语法格式:
  【其他修饰符】 abstract class 抽象类名{
          【其他修饰符】 abstract 返回值类型   方法名(【形参列表】); 
  }
   
   
   例如:我们声明一个图形类:Graphic
       我们知道在图形这个事物中,不管是什么图形,都有两个特征:(1)求面积(2)求周长
   
  4、抽象类的特点
  (1)抽象类不能实例化,不能直接创建对象或者说,不能创建抽象类的对象
  (2) 如果子类继承了抽象类,必须重写父类的所有的抽象方法,否则子类也得是一个抽象类
  (3)抽象类也有构造器,这个构造器不是为了创建抽象类自己的对象用的,而是为子类创建对象服务的
  (4)抽象父类与子类的对象之间可以构成多态引用
  (5)抽象类中也可能没有抽象方法,目的就是不能你创建它的对象

像这种没有抽象方法的抽象类,存在的意义
(1)为了多态的应用,因为父类可以管理各种子类对象
(2)不希望你创建这个父类的对象,而是创建子类的对象
      如果一个类中包含了抽象方法,那么这个类必须是一个抽象类。
 
  1、abstract:抽象的
  2、可以修饰什么?
  (1)类
  (2)方法
  
  3、修饰类的话,和那些修饰符不能一起使用
  类:public和缺省
       final
  
  abstract和final不能一起修饰类。
  
  4、修饰方法,和那些修饰符不能一起使用
  方法:4种权限修饰符
         static,final,abstract,native
  
  (1)final,abstract不行      因为final不能被重写
  (2)static,abstract不行    因为static不能被重写
  (3)native,abstract不行    因为都没有方法体,不知道是什么情况,会有歧义
  (4)private,abstract不行    因为private不能被重写
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值