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. 普通类
方法:
必须全部有方法体(即实现接口或继承父类里面的全部抽象方法);
继承:
只能继承普通类。
实现:
必须实现接口的全部抽象方法