java篇 之 抽象

Abstract(抽象):

Public abstract void work();  <==> public void work(){ }     抽象方法,存在于抽象类中, 提供一个方法重写

New Person(); 抽象类不能被实例化

抽象类中不一定要有抽象方法但抽象方法一定在抽象类中,可以用父类引用引用子类对象

抽象类变成非抽象类必须实现所有抽象(且没有给出)的方法体!

Final 不能与abstract 一起使用,static 不能与abstract一起使用(因为abstract希望别人来修改,来重写,static不支持重写,final不支持修改)

Interface(接口)(也是抽象的):

  1. 没有构造器
  2. 解决多继承

Interface Animal{}   interface Food{}   class Fish implements Animal,Food{}

  1. 接口中定义变量必须赋初值,且不能用代码块,接口中的成员变量默认都是public, static, final类型,必须被显式初始化
  2. 一个类只能继承一个直接的父类,但是可以实现多个接口,用implements
  3. abstract问题:省略方法必须加abstract
  4. 接口编译下来也是.class文件
  5. 接口可以继承接口,用extends,接口支持多继承
  6. 接口中都是些抽象方法,作为它的实现类(子类)必须实现它的方法
  7. 用于制定规则
  8. 接口是抽象类的另外一种形式

接口是抽象类的抽象,抽象类可存在有方法体的方法,接口中的方法全部为抽 象方法;

11.  接口中的所有方法均是抽象方法, 默认都是publicabstract类型的;

public interface A {

void method1();                //合法,默认为publicabstract类型

        public abstract void method2();//合法,显示声明为publicabstract类型

}

接口中的成员变量默认都是public, static, final类型,必须被显式初始化;

       public interface A {

              int CONST = 1;       //合法,CONST默认为public, static, final类型

              public static final int OPAQUE = 1;  //合法,显示声明为public static final 类型

       }

原文地址:https://www.cnblogs.com/wskb/p/10812060.html