接口1:Context
public interface Context {
String name = "admin";
int age = 18;
Object getName();
Object getAge();
void set();
}
接口2:Invocation
public interface Invocation {
Object getSrc();
Object getTar();
Object getCreateTime();
Object getCreator();
}
抽象类:AbstractContext
public abstract class AbstractContext implements Context, Invocation {
public String name = "admin1";//覆盖接口类的属性name
abstract Object getEmail(); //抽象类中定义类似接口函数,但必须加上abstract字段
protected String getAccount(){//抽象类新定义的方法
return "100";
}
public Object getName(){ //抽象类实现接口1:Context的方法
return "admin";
}
public Object getCreateTime(){//抽象类实现接口2:Invocation的方法
return new Date();
}
public Object getCreator(){ //抽象类实现接口2:Invocation的方法
return "administrator";
}
}
抽象类的实现类:AbstractContextImpl
public class AbstractContextImpl extends AbstractContext {
public Object getName() { //实现类中覆盖抽象类已有的方法
return "guest";
}
public Object getAge() { //接口1:Context中的方法需要实现
return "25";
}
public void set() { //接口1:Context中的方法需要实现
}
Object getEmail() { //抽象类定义的接口中的方法需要实现
return null;
}
public Object getSrc() { //接口2:Invocation中的方法需要实现
return null;
}
public Object getTar() { //接口2:Invocation中的方法需要实现
return null;
}
public static void main(String[] args) {
AbstractContext context = new AbstractContextImpl();
System.out.println(context.name);//访问的是抽象类AbstractContext的name成员,它覆盖了接口类的静态成员name
System.out.println(context.age);//访问的是接口定义静态变量age
System.out.println(context.getAccount()); //访问的是抽象类自定义实现的方法
System.out.println(context.getName()); //访问的是本实现类的方法,因为实现类对抽象类的方法进行了覆盖
System.out.println(context.getAge()); //访问的是本实现类的方法,实现了Context接口的方法
}
}
总结:
1.接口: public interface 接口1,接口2
只定义需要实现的接口函数及功能
2.抽象类: public abstract class 抽象类 implements 接口1,接口2
(1)覆盖接口定义的属性
(2)定义类似接口函数
(3)定义新方法
(4)实现接口的函数方法
3.实现类: public class 实现类 extends 抽象类
(1)覆盖抽象类中已有的方法
(2)实现抽象类和接口中所有剩余未实现的方法
本文参考:
https://blog.csdn.net/gaotanpan3666/article/details/89279104
基本上均为上述连接内容,只是自己排版了一下,为自己理解知识捋了一遍思路