继承的应用

1.当两个业务类有相同的逻辑,我们可以让他们继承同一个父类

(1)父类

public abstract class Father {
	//抽象方法,获取实例对象
	protected abstract Father getInstence();
	protected abstract String getSql();
	
	//实际业务
	protected void doAnalays(){
		Father instence = getInstence();
		//执行公共的逻辑
		String sql = getSql();
		if(instence instanceof Childer1){
			Childer1 child1 = (Childer1)instence;
			//执行1的私有
			child1.c1_p(sql);
		}else{
			Childer2 child2 = (Childer2)instence;
			//执行2的私有
			child2.c2_p(sql);
		}
	}
}

(2)Childer1

public class Childer1 extends Father{
	
	@Override
	protected Father getInstence() {
		return new Childer1();
	}

	@Override
	protected String getSql() {
		return "Childer1";
	}
	
	public void c1_p(String sql){
		System.out.println("这是childer1的私有方法,打印sql:"+sql);
	}
}

(3)Childer2 

package cn.huawei;

public class Childer2 extends Father{

	@Override
	protected Father getInstence() {
		return new Childer2();
	}

	@Override
	protected String getSql() {
		return "Childer2";
	}
	
	public void c2_p(String sql){
		System.out.println("这是childer2的私有方法,打印sql:"+sql);
	}
}

执行如下:

public static void main(String[] args) {        
    new Childer2().doAnalays();   
}

:这是childer2的私有方法,打印sql:Childer2 

总结:在这个例子中,有使用到父类的公共方法和子类的私有方法

猜你喜欢

转载自blog.csdn.net/qq_24099547/article/details/83719007