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);
}
}
相关文档:
1.读取XML文件的类:
public class XMLUtils {
private final String DB_XML_FILE = "/XMLSetting.xml";
public Properties getPropertiesfromXML() {
URL url = XMLUtils.class.getResource(dBXMLFILE);
URI uri;
try {
uri = url.toURI();
InputSource xmlfile = new InputSource(uri.g ......
Runtime runtime = Runtime.getRuntime();// 开始调用服务端脚本
Process process = runtime.exec("encode.sh /home/tomcat6/kgedata/note_not_encode/ /home/tomcat6/kgedata/note_encode/");
int exitVal = process.waitFor();
System.out.prin ......
首先要说的是,Hibernate中ORM里对应的映射文件BEAN,必须实现序列化.因为BEAN里的数据需要存入数据库(要转化为二进制保存),进行存取工作.
JAVA类的数据 ,如果要进行相关的存储工作(如写文件,网络传输,写数据库等),那么这个数据的类 就必须实现序列化接口 (java.io.Serializable ......
1列出磁盘/文件夹内的文件
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
&n ......
import java.text.Format;
import java.text.SimpleDateFormat;
File file = new File("a.txt");
long time = file.lastModified();
Date d = new Date(time);
Format simpleFormat = new SimpleDateFormat("E dd MMM yyyy hh:mm:ss a");
String dateString = simpleFormat.format(d);
System.err.println(file.getN ......