• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风吹花落泪如雨
博客园    首页    新随笔    联系   管理    订阅  订阅

JAVA基础(六)-----抽象类和接口

抽象类

抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:

abstract void fun();

抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

从这里可以看出,抽象类就是为了继承而存在的

  1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

    2)抽象类的构造器不能用于创建实例,主要是用于被其子类调用。构造器不能使用abstract修饰。

      3)static、final不能和abstract类同时使用,但static和abstract可以同时修饰内部类。

接口

接口,英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数。从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象。在Java中,定一个接口的形式如下:

[public] interface InterfaceName {
 
}

由于接口定义的是一种规范,因此接口里不能包含构造器和初始化定义,因此接口里定义的成员变量只能在定义时指定默认值。

成员变量:接口里的成员变量只能是静态常量,并且被隐式地指定为public static final变量。

方法:接口里的方法只能是抽象方法、类方法、默认方法或私有方法。

public interface Output{
  //接口里定义的成员变量只能是常量 public static final修饰
  int MAX_CACHE_LINE = 50;
//接口里定义的方法只能是public的抽象方法 public abstract修饰 void getData(String name);
//在接口里定义默认方法,需要使用default修饰 (其实就是有方法体的实例方法,因此default不能和static同时使用) default void test(){ System.out.println("默认的test()方法"); }
//在接口中定义类方法,需要使用static修饰 static String staticTest(){ return "接口里的类方法"; } //定义私有方法 (主要作用是作为工具方法,当两个默认方法(或类方法)中包含一段相同的实现逻辑时,私有方法将其抽取成工具方法) private void foo(){ System.out.println("foo私有方法"); } //定义私有静态方法 private static void bar(){ System.out.println("bar私有静态方法"); } }

 

posted @ 2018-06-06 16:16  风吹花落泪如雨  阅读(96)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3