public abstract class NeedShow{
/**
* 是否执行成功
*/
protected boolean execute_flag;
/**
* 获取执行是否成功
* @return 执行成功返回为true 执行失败返回为false
*/
public boolean isExecute_flag() {
return execute_flag;
}
/**
* 设置是否执行成功
* @param execute_flag 执行成功设置为true 不成功设置为false
*/
public void setExecute_flag(boolean execute_flag){
this.execute_flag = execute_flag;
}
}
public abstract class NeedShow{
/**
* 是否执行成功
*/
protected boolean execute_flag;
/**
* 获取执行是否成功
* @return 执行成功返回为true 执行失败返回为false
*/
public boolean isExecute_flag() {
return execute_flag;
}
public NeedShow(boolean flag)
{
this.execute_flag=flag
}
}
public abstract class NeedShow{
/**
* 是否执行成功
*/
protected boolean execute_flag;
/**
* 获取执行是否成功
* @return 执行成功返回为true 执行失败返回为false
*/
public abstract boolean isExecute_flag();
public NeedShow(boolean flag)
{
this.execute_flag=flag
}
}
举个例子在1.7的时候我们通常声明一个接口大概是长成这样的
public interface SendEmailMessage extends SendMessage{
/**
* 发送一个信息
* @param str
* @return
* @throws Exception 因为不同的发送接口抛出的异常不一样,因此使用的是Exception发送消息
*/
String sendEmailMessage(String str) throws Exception;
/**
* 设置发送给邮箱的信息
* @param theEmailMessage 被发送的信息
*/
void setTheEmailMessage(String theEmailMessage);
/**
* 获取发送给邮箱的信息
* @return
*/
String getTheEmailMessage();
/**
* 添加一个邮箱
* @param email 被添加的邮箱
*/
void addAnEmailReveiver(String email);
}
public interface Support{
static int count=0;
/**
* 判断一个数据的类型
* @param columnType 需要被判断的类型
* @param needType 需要的类型
* @return 如果被判断的类型包括需要的类型返回值为true 其他情况返回为false
*/
static boolean JudgeType(String columnType,String needType)
{
boolean flag=false;
needType=needType.toUpperCase();
if(columnType.contains(needType))
{
flag=true;
}
return flag;
}
default boolean Judge()
{
return false;
}
}
public interface SendEmailMessage extends SendMessage{
/**
* 发送一个信息
* @param str
* @return
* @throws Exception 因为不同的发送接口抛出的异常不一样,因此使用的是Exception发送消息
*/
String sendEmailMessage(String str) throws Exception;
/**
* 设置发送给邮箱的信息
* @param theEmailMessage 被发送的信息
*/
void setTheEmailMessage(String theEmailMessage);
/**
* 获取发送给邮箱的信息
* @return
*/
String getTheEmailMessage();
/**
* 添加一个邮箱
* @param email 被添加的邮箱
*/
void addAnEmailReveiver(String email);
}
public class Information extends NeedShow implements Cloneable,Serializable{
/*... 省略具体代码了 实际上 Cloneable,Serializable这两个接口中没有方法的 是两个标记性质的接口....*/
/**
* 获取执行是否成功
* @return 执行成功返回为true 执行失败返回为false
*/
public boolean isExecute_flag() {
return execute_flag;
}
}
class DML{
public void update()
{
System.out.println("DML UPdate");
}
}
class Insert extends DML{
public void update()
{
System.out.println("Insert Update");
}
}
class Update extends DML{
public void update()
{
System.out.println("Update Update");
}
}
class Delete extends DML{
public void update()
{
System.out.println("delete update");
}
}
class Main{
public static void main(String args[])
{
DML insertdml=new Insert();
DML updatedml=new Update();
DML deletedml=new Delete();
insertdml.update();
updatedml.update();
deletedml.update();
}
}
修改DML类如下:
修改Main类如下:
class Main{
public static void main(String args[])
{
DML insertdml=new Insert();
DML updatedml=new Update();
DML deletedml=new Delete();
insertdml.update();
insertdml.update(1);
insertdml.update(1.1);
updatedml.update();
updatedml.update(2);
updatedml.update(2.1);
deletedml.update();
deletedml.update(3);
deletedml.update(3.1);
}
}