java 重写与重载
重写的主要优点是能够定义子类特有的特征: 如:
public class Father{
public void speak(){
System.out.println("Father");
}
}
public class Son extends Father{
public void speak(){
System.out.println("son");
}
}
这也叫做多态性,重写方法只能存在于具有继承关系的类中,重写方法只能重写父类非私有的方法,当上例中Father类的speak()方法
为private时,Son类不能重写speak()方法,此时在Son类中定义的speak()方法相当于一个新的方法,与Father中的speak()方法
没有任何关系. 当Father类的speak()方法声明为final时,无论该方法的修饰符是public,protected还是默认,
Son类根本不能重写speak()方法,试图编译代码时,编译器会报错.例:
public class Father{
final void speak(){
System.out.println("Father");
}
}
public class Son extends Father{
public void speak(){
System.out.println("son");
}
}//编译器错误信息:Son 中的 speak() 无法覆盖 Father 中的 speak();被覆盖的方法为 final 重写方法的规则:
1.参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载;
2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载;
3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private);
4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.
例如: 父类的一个方法申明了一个检查异常IOException,在重写这个方法时就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常(unchecked exception,如运行时异常).
重载方法的规则: 1.必须具有不同的参数列表; 2.可以有不同的返回类型,只要参数列表不同就可以了; 3.可以有不同的访问修饰符; 4.可以抛出不同的异常;
示例: public class Father{
public void speak(){
System.out.println("Father");
}
public void speak(String info){
System.out.println("Father speak:" + info);
}
}
相关文档:
今晚在逛CSDN的时候发现了,有人用java写了生成myeclipse注册码的代码,所以就抄录了下来。 o(∩_∩)o 哈哈
package gggg;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MyEclipseGen {
private static final ......
玩过PSP的朋友们,想必都听说过《勇者30》的大名吧?嗯,没错,我说的就是那款必须在30秒内通关的变态游戏。
从表面上看,《勇者30》的游戏模式再简单不过,无非是传统的RPG游戏那样打怪、练级、完成支线任务、提升装备、探险、消灭魔王结束游戏。但是,所有受过其毒害的朋友都清楚,这些也仅仅是表面现象罢了。
因为这所 ......
import java.net.*;
import java.io.*;
public class PortScanner {
public static void main(String args[]){
String host="localhost";
new PortScanner().scan(host);
}
public void scan(String host){
  ......
Java文件下载的几种方式
< type="text/javascript">
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = cli ......
1、
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garba ......