Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147172
  • 博文数量: 27
  • 博客积分: 2011
  • 博客等级: 大尉
  • 技术积分: 332
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-02 16:13
文章分类

全部博文(27)

文章存档

2009年(18)

2008年(9)

我的朋友

分类: Java

2009-11-12 09:10:49

父类中可以定义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) |
给主人留下些什么吧!~~