一、接口
1、接口可以继承接口,不能继承类
public interface InterfaceTest{
public void name(String name);
}
public interface Interface1 extends InterfaceTest {
void interface1_function(int a);
}
public class MainTest implements Interface1 {
@Override
public void name(String name) {
// TODO Auto-generated method stub
}
@Override
public void interface1_function(int a) {
// TODO Auto-generated method stub
}
}
二、抽象类
1、抽象类A可以继承具体类B,也可以实现接口C,可以实现接口中的方法,也可以不用实现
而另一个类D去继承该抽象类A时,需要重写接口C中所有的方法,和至少一个B中的方法
public class MainTestB {
public void name() {
}
public void name2() {
}
}
public abstract class AbstractA extends MainTestB implements Interface1 {
//可实现也可不实现,若实现后,后续将不用再实现
@Override
public void interface1_function(int a) {
// TODO Auto-generated method stub
}
public static void hello(){//抽象类中也可以有静态方法
}
}
public class TestD extends AbstractA{
//若在抽象类中已经实现,将不用再实现该方法
/
@Override
public void interface1_function(int a) {
// TODO Auto-generated method stub
}
///
@Override
public void name(String name) {//B中的方法至少重写一个
Abstract1.hello();//调用静态方法
}}
抽象类中可以有具体的方法
public abstract class Abstract1 {
void func1(){
System.out.println("111");
}
abstract void func2();
abstract void func3();
}
在子类中需重写全部抽象方法
public class Test extends Abstract1{
@Override
void func2() {
// TODO Auto-generated method stub
}
@Override
void func3() {
func1();//直接调用抽象类中的具体方法
}
}