- 浏览: 182916 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (103)
- JS (17)
- 算法 (2)
- SVN (2)
- DB2 (1)
- JAVA (28)
- XML (2)
- DOM (2)
- flex (1)
- axis (1)
- weblogic (2)
- oracle (3)
- Struts2 (1)
- CSS (1)
- linux (4)
- ibatis (2)
- linux crontab (1)
- JSTL (1)
- jQuery (4)
- ajaxfileupload (1)
- POI (1)
- excel (1)
- JSONArray (0)
- JSONObject (0)
- JSON (2)
- postgresql (2)
- Ruby (2)
- mysql (7)
- tomcat (1)
- quartz (2)
- mail (1)
- UEditor (1)
- maven (1)
- eclipse (1)
- HttpClient (1)
- HttpGet (1)
- HttpPost (1)
- HttpHost (1)
- CredentialsProvider (1)
最新评论
-
快到碗里来_Jerry:
16777216L*Long.parseLong(ips[0] ...
IP地址与数字相互转换 -
谷超:
不知道楼主是否有更深入的研究
Quartz数据源配置 -
谷超:
楼主,quartz配置数据库信息后,是能够把job信息保存到数 ...
Quartz数据源配置
Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,本文主要在此做一个归纳总结。
Java的多态机制
即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:
class Animal{
void eat(){ System.out.print("animal eat");}
}
class Tiger extends Animal{
void eat(){System.out.print("Tiget eat");}
}
子类中的eat方法即对父类的eat方法实现了重写,重写最常见的例子就是下面的声明:
Animal some=new Tiger();
关于重写,遵循以下的规则:
(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。
(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。
(3)只有实例方法才能被重写,超类中的final方法不能被重写。
(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。
(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。
(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。
Java的重载机制:
重载的实质:在一个类中使用签名相同的多个方法。
按照范围,可以将重载分为在一个类中重载,和在子类和父类中重载。现分别解释如下:
1.在一个类中定义多个具有相同签名的方法,这些方法必须具有不同的参数列表,比如一个类的构造函数。
2.在父类和子类中,子类由于继承而拥有了父类的某些方法,此时在子类再定义具有相同签名的方法(必须具有不同的参数列表),这个地方很容易和重写相混淆,因此千万注意。
重载的规则主要记住亮点:
一是方法的参数列表必须改变,包括参数的类型,参数的个数多少,参数顺序。
二是重载对返回类型,访问修饰符,异常声明没有任何限制,可以作任意的修改。实质上,重载只是创建了一个方法而已,特殊的地方在于方法的名字。
注意下面的一种情况:(重写和重载的混合)
class UseAnimal{
void doStuff(Animal sa){}
void doStuff(Tiger sa){}
public static void main(String[] args){
UseAnimal ua=new UseAnimal();
Animal an=new Tiger();
ua.duStuff(an);
}
}
此时,调用的方法doStuff的Animal版本,因为调用重载方法是在编译时决定的,an的声明类型是Animal。所以调用Animal版本。
始终注意一点:重载的判断始终是在编译时决定。
Java的多态机制
即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:
class Animal{
void eat(){ System.out.print("animal eat");}
}
class Tiger extends Animal{
void eat(){System.out.print("Tiget eat");}
}
子类中的eat方法即对父类的eat方法实现了重写,重写最常见的例子就是下面的声明:
Animal some=new Tiger();
关于重写,遵循以下的规则:
(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。
(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。
(3)只有实例方法才能被重写,超类中的final方法不能被重写。
(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。
(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。
(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。
Java的重载机制:
重载的实质:在一个类中使用签名相同的多个方法。
按照范围,可以将重载分为在一个类中重载,和在子类和父类中重载。现分别解释如下:
1.在一个类中定义多个具有相同签名的方法,这些方法必须具有不同的参数列表,比如一个类的构造函数。
2.在父类和子类中,子类由于继承而拥有了父类的某些方法,此时在子类再定义具有相同签名的方法(必须具有不同的参数列表),这个地方很容易和重写相混淆,因此千万注意。
重载的规则主要记住亮点:
一是方法的参数列表必须改变,包括参数的类型,参数的个数多少,参数顺序。
二是重载对返回类型,访问修饰符,异常声明没有任何限制,可以作任意的修改。实质上,重载只是创建了一个方法而已,特殊的地方在于方法的名字。
注意下面的一种情况:(重写和重载的混合)
class UseAnimal{
void doStuff(Animal sa){}
void doStuff(Tiger sa){}
public static void main(String[] args){
UseAnimal ua=new UseAnimal();
Animal an=new Tiger();
ua.duStuff(an);
}
}
此时,调用的方法doStuff的Animal版本,因为调用重载方法是在编译时决定的,an的声明类型是Animal。所以调用Animal版本。
始终注意一点:重载的判断始终是在编译时决定。
发表评论
-
JVM分析
2016-06-16 13:24 473在这里对linux下、sun(oracle) JDK的线程 ... -
新版apache HttpClient调用http接口
2016-03-29 10:49 1242新项目中使用新版的apache HttpClient调用h ... -
IP地址与数字相互转换
2015-12-03 11:50 1024/** * ip地址转成整数. ... -
com.sun.xml.stream.ZephyrParserFactory not found
2015-10-12 14:52 2200org.springframework.beans.fact ... -
HTTP - 304实现
2015-09-30 09:21 1105最近公司做了一个CMS项目,其中涉及到图片上传后页面展现, ... -
java mail 发送邮件
2015-07-01 17:51 5181. 邮件发送封装类 import java.util.P ... -
银行卡验证
2015-06-05 16:06 1352现行 16 位银联卡现行卡号开头 6 位是 622126~6 ... -
java读取classpath文件
2015-02-26 10:05 832ClassLoader 提供了两个方法用于从装载的类路径中取 ... -
Java中如何获取spring中配置的properties属性文件内容
2015-02-13 15:27 1928String host = (String) Custom ... -
CXF动态客户端No operation was found with the name问题
2015-01-21 12:59 1235如果WebService发布时,接口和实现类指定的names ... -
RestTemplate设置代理
2015-01-16 10:35 4746RestTemplate restTemplate = ne ... -
java字符串压缩
2015-01-14 13:49 2231采用jdk自带的gzip和zip方法进行压缩。并用apac ... -
遍历JSONArray及JSONObject
2015-01-14 12:59 2806String json = "{''data' ... -
java 已知一个Date(),获取前一天和后一天
2014-11-10 16:36 1862import java.text.ParseExceptio ... -
遍历Collection
2014-07-29 13:37 1019一、Map的遍历 import java.util.Has ... -
Service里直接写iBATIS
2014-03-05 15:08 725以前使用iBATIS时,DAO类,需要先定义一个接口,再定义 ... -
EntrySet比KeySet效率高
2014-03-05 14:57 995import java.util.Calendar; im ... -
Java跳出for循环
2014-02-21 12:44 1214a: for (Person person : ... -
Dom4j将document对象转换成String
2013-08-01 10:30 2811Dom4j将document对象转换成String: do ... -
IO中用ByteArrayOutputStream解决乱码问题
2013-07-31 20:48 7822IO中另外一种防止乱码的方法:使用ByteArrayOutp ...
相关推荐
在编程语言中,Java的重写(Override)和重载(Overload)是两个非常重要的概念,它们在类与对象的多态性中起到关键作用。理解并掌握这两个概念是成为一名合格的Java开发者的基础。 首先,我们来谈谈重写(Override...
Java中的重载(Overloading)和重写(Overriding)是面向对象编程中两个重要的概念,它们体现了Java的多态性。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。 首先,让我们详细解释一下方法的重载。重载...
JAVA 中的方法重写和方法重载是两个重要的概念,在面向对象程序设计语言中尤为重要。方法重写和方法重载都是多态性的体现,但它们之间有着本质的区别。 方法重写(Override)是指在子类中定义的一个方法,其名称、...
Java 中重载和重写总结 Java 中的重载(Overloading)和重写(Overriding)是两个非常重要的概念,它们都是多态性的体现形式。 一、Java 中的重载(Overloading) Java 中的重载是指在同一个类中可以创建多个...
面向对象是Java编程的核心概念,其中“重载”(Overloading)和“重写”(Overriding)是两个至关重要的概念。理解并熟练运用这两个概念,对于提升Java编程能力至关重要。 首先,我们来探讨“重载”。在Java中,...
总结来说,Java中的重写和重载是两种实现多态性的机制。重写关注的是子类对父类方法的定制,而重载则关注的是在同一类中提供多种不同实现。了解和掌握这两种机制对于编写面向对象的Java程序至关重要。
在面向对象编程语言中,如Java、C#等,重载(Overloading)、重写(Overriding)、覆盖(也称为重写)以及多态(Polymorphism)是几个非常重要的概念。它们之间既有关联又有区别,本文将详细解释这些概念,并探讨...
根据提供的文件信息,我们可以深入探讨Java中的两个核心概念:重写(Override)与重载(Overload)。这两个概念在面向对象编程中非常重要,尤其是在Java这样的语言中。 ### Java中的重写(Override) #### 什么是重写? ...
在Java编程语言中,重载、重写、继承与多态是四个非常核心的概念,它们在面向对象编程中扮演着至关重要的角色。接下来,我们将详细探讨这些概念,并通过实例加以说明。 ### 重载(Overload) 重载是指在同一个类中...
在编程语言中,方法重载(Overloading)和方法重写(Overriding)是两个非常重要的概念,它们都是实现多态性(Polymorphism)的关键机制。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 方法重载...
Java编程语言中,方法的两种重要特性是方法重载(Overloading)和方法重写(Overriding)。这两种机制都是为了实现多态性,但它们在实际应用中有着明显的区别。 **方法重载(Overloading)**: 方法重载发生在同一...
Java语言中的覆盖(Override)和重载(Overload)以及多态(Polymorphism)是面向对象编程...综上所述,Java中的覆盖和重载以及多态机制使得代码更加灵活,可读性和可维护性得到提升,同时也为面向对象设计提供了强大的工具。
它们都是实现多态性的方式,但具体机制和应用场景有所不同。下面将详细阐述这两个概念及其区别。 首先,重载(Overload)指的是在同一个作用域内,可以有多个同名函数或方法,但这些函数或方法的参数列表必须不同,...
在Java编程语言中,"重载"(Overloading)和"重写"(Overriding)是两个非常重要的概念,它们都是面向对象特性的重要体现。理解并掌握这两个概念对于编写高效、可维护的代码至关重要。 首先,我们来谈谈“重载”...
### Java中的重载、重写、继承与多态 #### 一、重载(Overloading) 在Java中,**重载**是指在一个类内可以有多个名称相同但参数列表不同的方法。这些方法可以通过不同的参数类型、数量或者顺序来进行区分。需要...
Java中的重载、重写、多态、静态绑定和动态绑定的知识点总结 Java 中的重载(Overload)是一种机制,允许在同一个类中定义多个具有相同名称的方法,这些方法的参数个数、参数类型和顺序不能相同。返回类型可以相同...
在上面的例子中,Dog 类继承了 Animal 类的方法和属性,并重写了 sound 方法。 Java 中的多态总是子类型的多态。几乎是机械式产生了一些多态的行为,使我们不去考虑其中涉及的类型问题。本文研究了一种面向类型的...
### 深入Java核心:Java中...通过以上讨论,我们可以看到Java中的多态机制是如何工作的,以及它是如何提高代码的复用性和灵活性的。多态是Java面向对象编程的核心概念之一,掌握好它对于编写高质量的Java程序至关重要。
Java 方法重写和 super 关键字实例详解 Java 方法重写是 Java 编程语言中的一种机制,允许子类提供特定于自己的实现以替代父类的方法。这种机制可以使得子类可以根据自己的需求来修改父类的方法,以满足自己的需求...