我先给你一个例子:
public interface LoginAuth{ public String encryptPassword(String pass); public void checkDBforUser();}假设你的应用程序中有3个数据库。然后,该数据库的每个实现都需要定义以上两种方法:
public class DBMySQL implements LoginAuth{ // Needs to implement both methods}public class DBOracle implements LoginAuth{ // Needs to implement both methods}public class DBAbc implements LoginAuth{ // Needs to implement both methods}但是,如果
encryptPassword()不依赖数据库又对每个类都是相同的呢?那么以上将不是一个好的方法。
相反,请考虑以下方法:
public abstract class LoginAuth{ public String encryptPassword(String pass){ // Implement the same default behavior here // that is shared by all subclasses. } // Each subclass needs to provide their own implementation of this only: public abstract void checkDBforUser();}现在,在每个子类中,我们只需要实现一个方法-该方法依赖于数据库。



