易截截图软件、单文件、免安装、纯绿色、仅160KB

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);
}
}


相关文档:

java多线程编程要点(三)

       在JDK1.5之前,对高质量Java多线程并发程序设计时,为防止程序崩掉等现象的出现,比如使用wait()、notify()和synchronized等,需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,通常会采用一些较为复杂的安全策略,加重了程序员的开发负担。在J ......

java 序列化与持久化

首先要说的是,Hibernate中ORM里对应的映射文件BEAN,必须实现序列化.因为BEAN里的数据需要存入数据库(要转化为二进制保存),进行存取工作.
        JAVA类的数据 ,如果要进行相关的存储工作(如写文件,网络传输,写数据库等),那么这个数据的类 就必须实现序列化接口 (java.io.Serializable ......

java 实现的端口扫描器

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文件下载



Java文件下载的几种方式
< type="text/javascript">
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = cli ......

java中小数保留及时间的一些操作

import java.text.DecimalFormat
double a = 2.3659874;
//小数格式化,引号中的0.000表示保留小数点后三位(第四位四舍五入)
DecimalFormat df = new DecimalFormat("0.000");
String num = df.format(a);
System.out.println(num);
输出结果就是 2.366
Java计算时间差
比如:现在是2004-03-26 13:31:40
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号