java -abstract类、接口

abstract类(抽象类)

abstract类(抽象类)

abstract class A{
}

** abstract()方法**

abstract int min(int x,int y);
  1. abstract类中可以有abstract()方法,也可以没有有abstract()方法。
  2. abstract类不能使用new运算创建对象。他只能被子类继承时才能发挥作用,且子类必须重写其abstract()方法,对于非abstract()方法可以重写,也可不重写,根据情况而定即可。即使抽象类中不包含抽象方法也不能被实例化。
  3. 对于abstract()方法,只允许声明,不允许实现,即没有方法体,也没有花括号。这样的方法必须在abstract类被继承时进行重写,所以不允许用final关键字修饰abstract类或方法。因为final修饰的类或方法是不允许北继承或者重写的。
  4. 具体子类在继承抽象类时,必须重写其所有抽象方法,否则,仍是一个抽象类。由此,也可知,抽象类可以继承抽象类。
  5. abstract类中可以有构造方法,但不能有抽象构造方法。
    因为子类不继承父类的构造方法,对于抽象方法必须进行重写,而二者相互矛盾。
  6. 模板方法设计模式是抽象类的一个典型应用。
  7. 抽象类:直接定义的抽象类;继承抽象类没有重写其全部的抽象方法;实现接口没有重写其全部的抽象方法。

interface接口

interface 接口名称{
}

接口体中包括常量和抽象方法两部分,注意没有普通成员变量和普通成员方法方法。
接口中方法的修饰符为public abstract,常量的修饰符为public static final。以上修饰符号均可省略。

public final int a=100;//等价写法:int a=100;
public abstract int sum(int x,int y);//等价写法: int sum(int x,int y);

抽象类和接口的比较

  1. 均不能使用new运算创建对象
  2. 在接口中只可以有abstract方法,不能有普通成员方法。在abstract类中,既可以有abstract方法,也可以有普通成员方法。
  3. 在接口中只可以有常量,不能有变量。在abstract类中,既可以有常量,也可以有变量。
abstract class A{
public int a=5;//这样定义变量可以
public int a=a+5//这样不可以
}
  1. 抽象类中可以有构造方法,接口中不能有构造方法
  2. 抽象类中可以包含静态方法,接口中没有静态方法。
  3. 一个类可以实现多个接口,但只能继承一个抽象类
  4. 抽象类中抽象方法的访问类型可以是public,protected和默认类型。
    接口中抽象方法访问类型只有public。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,227评论 0 5
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,688评论 0 11
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,183评论 0 2
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 961评论 0 2