父类中可以定义abstract方法,子类定义(且必须定义)该方法,在父类的函数中可以使用abstract体现个性化。总之,通用的在父类,个性的留到子类。
public abstract class Log { protected String logHeader = null; // 属性要是protected
abstract protected void initHeader();
public void log(String content) { if(logHeader == null) { initHeader(); } System.out.println("【" + logHeader + "】" + content); } }
|
public interface LogUser { public void fun(); }
|
public class LogUser1 extends Log implements LogUser {
@Override protected void initHeader() { logHeader = this.getClass().getName(); } public void fun() { log("我是LogUser1,我所有的日志前面有我的类名"); }
}
|
public class LogUser2 extends Log implements LogUser {
@Override protected void initHeader() { logHeader = this.getClass().getName(); } public void fun() { log("我是LogUser2,我所有的日志前面有我的类名"); }
}
|
public class test { public static void main(String args[]) { LogUser log1 = new LogUser1(); LogUser log2 = new LogUser2(); log1.fun(); log2.fun(); } }
|
输出
【LogUser1】我是LogUser1,我所有的日志前面有我的类名
【LogUser2】我是LogUser2,我所有的日志前面有我的类名
阅读(606) | 评论(0) | 转发(0) |