继承转为接口的问题
Class Main.java
package System;
import javax.servlet.http.HttpServlet;
public class Main extends HttpServlet {
public String rs;
public void A(String Test){
this.B();
}
private void B(){
rs="Test String B<br />";
}
public void C(){
rs="Test Sting C<br />";
}
public void D(){
rs="Test String D<br />";
}
@Override
public String toString(){
return rs.toString();
}
}
Class index.java
package web;
import System.Main;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="index", urlPatterns={"/index"})
public class index extends Main {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
this.A("index");
out.print(this.toString());
this.C();
out.print(this.toString());
try {
} finally {
out.close();
}
}
@Override
public void C(){
this.rs="Test String Main.C<br />";
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
Class NewServlet.java
package web;
import System.Main;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="NewServlet", urlPatterns={"/NewServlet"})
public class NewServlet extends Main {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
this.A("aaaaaaa");
this.D();
out.print(this.toString());
this.C();
out.print(this.toString());
} finally {
out.close();
}
}
@Override
public void D(){
this.rs="Test String NewServlet.D<br />";
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
大概的意思就是做一个网站,网站所有页面类都是从Main继承下来的,Main类根据每个页面提交上来的信息,再自动分析内容,比如是连接数据库返回表内容,或者是调用XML返回节点,或者其它,再返回给页面类,但有些页面类会重写掉主类的方法,有些不会重写,用默认的就行,再就是变量从主类传递下来,有些页面也会改写变量,有些不会.
我一直是用继承的方式做的,但现在要求改为接口,但我一直没有学过接口的东西(从别的语言转到JAVA的),在网上看了一些例子,也不是很明白,有没有人帮忙把上面的类改成接口调用,我参考一下,,不甚感谢.....
[解决办法]
貌似你的代码没有必要用接口吧。。。
[解决办法]
继承和接口的时候都是根据实际业务需求而定的,哪还有强迫用接口不用继承的。有时候继承比接口更合适!它们有各自适合的场景的。你这个明显更适合用继承么。因为接口里不能有实现代码的,接口只负责定义行为,具体实现要实现类去做的,而你这里的实现都是公用的代码,显然是放在父类里更合适。
如果非得用接口,就只能这么改了
Main.java不变,增加接口MainInterface.java
public interface MainInterface {
public Main main = new Main();
}
实现类:
- Java code
public class index implements MainInterface { protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); this.main.A("index"); out.print(this.main.toString()); this.C(); out.print(this.main.toString()); try { } finally { out.close(); } } public void C(){ this.main.rs="Test String Main.C<br />"; }}
[解决办法]
接口就是要求那些实现接口的程序做什么事情
比如你们头儿让你把继承改接口,怎么改是你的事情,但接口要求他跟你说了你就得按这个做
话说你们头儿没学过java吧....接口和继承并不是可以完全互相替代的东西
[解决办法]
public class somclass implements main{}
我觉得你们老大是这个意思,implements和extends没什么区别,implements只是java为了解决多继承想出来的招