java重写可以没有over_【Java】重写(Override)与重载(Overload)
时间: 2023-12-09 15:02:31 浏览: 35
是的,Java中的方法重写(Override)可以没有任何注解或关键字。如果子类中定义了一个与父类中同名、参数列表和返回类型也相同的方法,那么这个方法就自动成为了重写(Override)方法,无需使用关键字或注解来修饰。 但是,为了代码的可读性和可维护性,建议在重写方法时使用`@Override`注解,这样可以让编译器检查是否正确地重写了父类的方法。
相关问题
java 重写session_SpringSession 请求与响应重写的实现
在Spring Session中重写Session的请求和响应可以通过实现`HttpSessionStrategy`接口来实现。
下面是一个示例代码:
```java
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.session.web.http.HttpSessionStrategy;
public class CustomSessionStrategy implements HttpSessionStrategy {
private static final String SESSION_HEADER = "X-Auth-Token";
@Override
public String getRequestedSessionId(HttpServletRequest request) {
return request.getHeader(SESSION_HEADER);
}
@Override
public void onNewSession(Session session, HttpServletRequest request, HttpServletResponse response) {
response.setHeader(SESSION_HEADER, session.getId());
}
@Override
public void onInvalidateSession(HttpServletRequest request, HttpServletResponse response) {
response.setHeader(SESSION_HEADER, "");
}
}
```
在上面的代码中,`getRequestedSessionId`方法从请求头中获取Session ID,`onNewSession`方法将新Session ID存储在响应头中,`onInvalidateSession`方法在Session失效时将响应头中的Session ID删除。
然后,在Spring的配置文件中配置`HttpSessionStrategy`,例如:
```xml
<bean id="httpSessionStrategy" class="com.example.CustomSessionStrategy" />
```
这样就完成了Session请求和响应的重写。
java重写重载的区别
重写(Override)和重载(Overload)是Java中两个不同的概念,它们的区别如下:
1. 重写(Override)是指在子类中重新定义父类中已有的方法,方法名、参数列表和返回值类型都必须与父类中的方法相同。重写方法的访问修饰符不能比父类中的方法更严格。重写方法不能抛出比父类方法更多的异常。重写方法可以使用super关键字调用父类中的方法。
2. 重载(Overload)是指在同一个类中定义多个方法,它们具有相同的方法名但是参数列表不同(参数个数、类型或顺序不同),返回值类型可以相同也可以不同。重载方法不能只有返回值类型不同。重载方法可以有不同的访问修饰符,可以抛出不同的异常。重载方法不能用参数名称来区分,只能通过参数列表来区分。
总之,重写是子类对父类方法的覆盖,参数列表必须相同;而重载是在同一个类中对同一个方法进行多次定义,参数列表必须不同。