接口,抽象类,普通类

java 9之前(java 9可以定义private方法:

public interface Card{

  private Long createCardID(){
    // Method implementation goes here.
  }

  private static void displayCardDetails(){
    // Method implementation goes here.
  }

}

1. 接口:

首先你要弄清接口的含义.接口就是提供一种统一的’协议’,而接口中的属性也属于’协议’中的成员.它们是公共的,静态的,最终的常量.相当于全局常量.

在interface里面的变量都是public static final 的。所以你可以这样写:
public static final int i=10;
或则
int i=10;(可以省略掉一部分)

注意在声明的时候一定要给变量赋予初值

方法:

接口中方法一般的方法都是抽象方法(即无方法体)如:

public int sun(int i);

int sun(int i);(省略一部分)

但是也可以有一般方法(有方法体)只能是 static或default:

java接口中的default方法是在java 8之后引入的,即在不破坏java现有实现架构的情况下能往接口里增加新方法。
Java接口现在可以有非抽象方法了。Default 方法带来的好处是,往接口新增一个Default 方法,而不破坏现有的实现架构。尽管如此,Default 方法不适合过多使用,但是对于Java集合API的优化升级,并达到无缝地结合Lambda表达式来说,Default 方法是至关重要的特性。

public static int staticF(int a)
{
return 0;
}

default int default1(int d)
{
return 3;
}

 

继承:

接口可以继承接口,但不能继承class

public interface InterFace2 extends InterfaceTest

 

实现:

接口不能实现接口

 

2. 抽象类 

abstract class TestClass2

方法:

抽象类中可以普通方法(方法体)

public int testf(int a)
{
return 2;
}

或抽象方法必须是有abstract(无方法体)

public abstract int mult(int a, int b);

 

继承(单继承):

抽象类可以继承至抽象类

即: abstract class TestClass extends TestClass(抽象类)

也可继承至普通类

即: abstract class TestClass extends TestClass(普通类)

 

实现:

抽象类可以实现接口

public abstract class TestClass2 implements InterfaceTest

因为抽象类中可以有抽象方法,所以可以不用实现接口中的方法体(相当于继承了接口的抽象方法)

 

3. 普通类

方法:

必须全部有方法体(即实现接口或继承父类里面的全部抽象方法);

 

继承:

只能继承普通类。

 

实现:

必须实现接口的全部抽象方法

 

posted on 2018-03-23 14:05  卖肾割阑尾  阅读(112)  评论(0编辑  收藏  举报

导航