java抽象

来源:互联网 发布:泯然众人 知乎 编辑:程序博客网 时间:2024/05/17 08:54
1.抽象类
 a.什么是抽象类
  用可选修饰符abstract修饰的类
        特点:
   1.抽象类不能产生对象(原因:对象是具体的,实际的存在,不应该有不确定的东西)
   2.抽象类存在的意义就在于产生子类
   3.抽象类里面可以定义:属性/构造/方法/初始化块/内部类,总之一个类该有的它都可以有
   4.语法上允许一个抽象类里面没有抽象方法,但这样做失去了设计的意义。
   5.子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个子类自己也是抽象类。
   6.abstract只能写在方法和类之中
 b.为什么要写抽象类
  当一个方法我们只能确定它的声明而无法确定它的实现,那么该方法就要设计为抽象方法
 c.语法
  在语法声明的部分加上一个可选修饰符abstract,然后该方法不能有方法的实现部分。
  连{ }也不能有!用 ; 直接结束。
  有抽象方法的类就叫做抽象类,必须在类的修饰符前加上abstract。
 
2.接口
 为什么要用接口
  让没有继承关系的类也能共享行为
 接口是干什么的
  解决单继承丰富度不足的问题
 语法
  定义接口(命名规则:动词 + able)
   一个类去实现接口,一个接口继承接口
   关键字:interface——这说明接口是一种独立的数据类型
   接口在语法上访问修饰符只能是public或默认
   属性——只能是公共、静态、常量属性   public static final a = 100;
    就算不写也是public、static、final的
   构造——接口不能有构造方法
   方法——接口里定义的方法只能是公共、抽象的方法
    就算不写也是public、abstract的
    (在jdk1.8中接口有了新功能 ,可以书写实现了的方法,但要使用default关键词)
   初始化块——接口不能有初始化块
  实现接口
   关键字:implements
   1.实现接口的类必须实现接口的所有抽象方法,除非这个类是抽象类
   2.一个类可以实现多个接口,在implements关键字后面书写多个接口的名字  中间用 , 分隔
   3.类在实现接口的同时,可以做继承
  继承接口
   使用关键字extend
   1.子接口继承父接口以后,自动拥有了父接口的抽象方法
   2.接口继承接口允许多继承  中间用 , 分隔
 设计场景
 特点
  独立的数据类型,自成语法
  接口关注的是行为的共享
  公共接口的名字,必须和他所在的Jaca文件名保持一致
  接口的引用可以指向实现类的对象
 设计
  把与生俱来的方法写在父类抽象中,附属添加的就放在接口
  开闭原则,单一职责,最小接口原则:尽量设计小接口,可以自由组合,任意拆分


0 0
原创粉丝点击