- 浏览: 96027 次
- 性别:
文章分类
- 全部博客 (151)
- Spring-MVC学习 (5)
- 偶然间发现 (2)
- easyUi学习 (7)
- web项目相关技术 (4)
- java学习 (26)
- webService (4)
- 一些工具的安装使用 (7)
- js学习 (20)
- Sping学习 (7)
- mybatis学习 (5)
- 定时器 (4)
- oracle (2)
- JSP学习 (6)
- HTML一些标签 (1)
- web服务 (2)
- 偶尔得到的地址 (2)
- 常用的代码记录 (2)
- 设计模式 (1)
- java常使用的开源API (1)
- maven (1)
- Socket (1)
- nginx (2)
- jquery (3)
- poi (2)
- 写过的工具类 (19)
- 微信开发 (2)
- mysql (1)
- freemarker (2)
- ftp (1)
- 用过的软件 (1)
- jconsole (1)
- log4j (1)
- redis的简单入门使用 java调用redis (0)
- redis的使用 (2)
- 生活相关的 (1)
最新评论
-
chokee:
...
easyUi学习之开启行编辑模式增删改操作 -
lijie_insist:
就是有的界面需要显示天气啊!所以你要调用天气的接口啊 因为很多 ...
免费的天气接口的一个demo -
zhglance:
请问这是干什么用的呢?
免费的天气接口的一个demo
重载方法满足以下条件:
1. 方法名要相同
2. 方法参数不同(数量,类型,顺序)
3. 返回值可以同可不同
4. 修饰符号可同可不同
方法的覆盖满足以下条件:
1. 首先要有继承
2. 子类方法名称和方法签名必须与覆盖的方法相同
3. 子类方法的返回类型必须与覆盖的方法相同
4. 子类不能缩小所覆盖方法的访问权限
5. 子类方法不能抛出比覆盖方法更多的异常
方法的重载(overload)就是:
方法名相同,方法参数的个数,顺序,类型至少有一个不同,方法返回类型可以不同,修饰符也可以不同。
方法的重写覆盖(override):子类(所以说要有继承)方法的名称,返回类型,参数签名必须和父类的是一样的,且子类不能缩小父类的访问权限(public,private。。),这违背了多态,子类不能抛出比父类更多或者大的异常 ,重写只能存在于子类和父类,在同一个类中只存在重载,不存在重写。父类的静态方法不能被子类覆盖成非静态的方法,但是子类可以定义和父类同名的静态方法来影藏父类的静态方法,但是也要满足覆盖的条件。子类影藏父类的静态方法和覆盖父类的实例方法的区别在于,在运行时,java虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定。同样父类的非静态方法不能被子类覆盖成静态方法。父类的私有方法不能被子类覆盖,因为覆盖的前提是子类继承了那个方法,而私有的并没有被继承。最后就是抽象的。父类的抽象方法可以通过两种路径覆盖,第一种是实现父类的抽象方法,并扩大权限,第二种是重新声明抽象方法,但不实现,仅仅为了扩大权限,父类的非抽象方法可以重载为抽象方法(183页,孙为琴 面向对象)
多态的特征:
1. 对于一个引用类型的变量,编译器按照他申明的类型处理
2. 对于一个引用类型的变量,运行时java虚拟机按照他实际引用的对象处理
3. 在运行时环境中,通过引用变量来访问所应用对象的方法和属性时,采用如下绑定规则:实例方法与引用变量实际引用的对象的方法绑定(既实例方法绑定其对象);静态方法与引用变量所声明的类型的方法绑定(既静态方法绑定起引用变量的类型);成员变量(包括静态变量和实例变量)与引用变量所声明的类型的成员变量绑定(既属性绑定期引用变量的类型)
继承的特征: 继承关系最大的弱点是打破了封装,子类能够访问父类的实现细节,子类与父类之间紧密耦合,子类缺乏独立性,从而影响子类的可维护性。为了尽可能的避免这一缺陷,应该遵循以下原则:
1. 精心设计专门用来被继承的类,继承树的抽象出比较稳定
2. 对于父类中不允许被覆盖的方法,采用final修饰符来禁止被子类覆盖
3. 对于不是专门用来被继承的类,禁止被继承
4. 休闲考虑用组合关系提高代码的 可重用性
1. 方法名要相同
2. 方法参数不同(数量,类型,顺序)
3. 返回值可以同可不同
4. 修饰符号可同可不同
方法的覆盖满足以下条件:
1. 首先要有继承
2. 子类方法名称和方法签名必须与覆盖的方法相同
3. 子类方法的返回类型必须与覆盖的方法相同
4. 子类不能缩小所覆盖方法的访问权限
5. 子类方法不能抛出比覆盖方法更多的异常
方法的重载(overload)就是:
方法名相同,方法参数的个数,顺序,类型至少有一个不同,方法返回类型可以不同,修饰符也可以不同。
public class TestConstract { public static void main(String[] args, int r) { } //少一个参数,返回类型也不影响 public static int main(String ag) { return 0; } //当参数相同时报错,返回值不同时,报错,所以返回值不是重载的条件 // public static int main(String[] args, int r){ // return 0; // } // //修饰符也不是构成重载的条件 // private static int main(String[] args,int r){ // return 0; // } //参数顺序不同,没问题 public static void main(int r,String[] args){ } /** * 总得来说,影响方法重载的是参数的类型,参数顺序和个数。 */ }
方法的重写覆盖(override):子类(所以说要有继承)方法的名称,返回类型,参数签名必须和父类的是一样的,且子类不能缩小父类的访问权限(public,private。。),这违背了多态,子类不能抛出比父类更多或者大的异常 ,重写只能存在于子类和父类,在同一个类中只存在重载,不存在重写。父类的静态方法不能被子类覆盖成非静态的方法,但是子类可以定义和父类同名的静态方法来影藏父类的静态方法,但是也要满足覆盖的条件。子类影藏父类的静态方法和覆盖父类的实例方法的区别在于,在运行时,java虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定。同样父类的非静态方法不能被子类覆盖成静态方法。父类的私有方法不能被子类覆盖,因为覆盖的前提是子类继承了那个方法,而私有的并没有被继承。最后就是抽象的。父类的抽象方法可以通过两种路径覆盖,第一种是实现父类的抽象方法,并扩大权限,第二种是重新声明抽象方法,但不实现,仅仅为了扩大权限,父类的非抽象方法可以重载为抽象方法(183页,孙为琴 面向对象)
多态的特征:
1. 对于一个引用类型的变量,编译器按照他申明的类型处理
2. 对于一个引用类型的变量,运行时java虚拟机按照他实际引用的对象处理
3. 在运行时环境中,通过引用变量来访问所应用对象的方法和属性时,采用如下绑定规则:实例方法与引用变量实际引用的对象的方法绑定(既实例方法绑定其对象);静态方法与引用变量所声明的类型的方法绑定(既静态方法绑定起引用变量的类型);成员变量(包括静态变量和实例变量)与引用变量所声明的类型的成员变量绑定(既属性绑定期引用变量的类型)
继承的特征: 继承关系最大的弱点是打破了封装,子类能够访问父类的实现细节,子类与父类之间紧密耦合,子类缺乏独立性,从而影响子类的可维护性。为了尽可能的避免这一缺陷,应该遵循以下原则:
1. 精心设计专门用来被继承的类,继承树的抽象出比较稳定
2. 对于父类中不允许被覆盖的方法,采用final修饰符来禁止被子类覆盖
3. 对于不是专门用来被继承的类,禁止被继承
4. 休闲考虑用组合关系提高代码的 可重用性
发表评论
-
ajax的分页分页请求,通过ajax来分页
2015-12-01 14:55 439这里面通过自定义标签实现的,因为项目没有采用jsp模板而是用的 ... -
java学习之JAXB解析xml
2015-08-17 09:07 904时间仓促,只记录代码 //实体类 package com.w ... -
生成验证码的方法
2015-07-17 08:43 2忘了在哪里参考过代码,后来自己参照了写了这一段code pac ... -
javax.mail邮件发送返回状态吗
2015-07-02 17:35 1569项目需要集成邮件发送,之前在.net下写过smtp的邮 ... -
javax.mail邮件发送
2015-06-30 12:50 0package com.demo.common; impor ... -
java的(PO,VO,TO,BO,DAO,POJO)解释
2015-06-04 11:31 424原地址:http://www.cnblogs. ... -
JDBC学习
2015-04-21 10:02 286原文来自:http://blog.csdn.net/fight ... -
j2ee web项目的基本结构
2015-03-20 14:50 521原地址:http://www.cnblogs.co ... -
HTTP 返回的状态码的含义
2015-03-20 14:38 428在网上看到的,总结的蛮 ... -
java学习之try catch finally中的return语句执行
2015-03-10 14:21 525http://blog.csdn.net/kavensu/ar ... -
java反射机制的学习
2015-03-06 13:39 341http://blog.csdn.net/zzjjiandan ... -
java学习之时间类的使用
2015-03-06 10:26 463有时候要对时间进行各方面的操作,这里就记录下最近使用到的对时间 ... -
为什么接口的属性用public static final修饰
2015-03-05 09:14 549每次只是看了看.好多都没去实践和去想! 自己写了个接口才会想到 ... -
正则表达式的学习
2015-03-04 11:10 338http://help.locoy.com/Document/ ... -
面向对象的特征
2015-03-02 17:56 370今天看到一篇文章对面 ... -
Class.forName("className"),class.getClass,class.class区别
2015-02-27 17:43 377今天看java.lang.reflect包中的信息时,想到了这 ... -
java调用webservice(asmx)的例子
2015-02-04 16:54 424转自:http://www.blogjava.net/jerr ... -
java学习之流的学习
2015-01-21 14:12 369因为经常用到流,并且发现java中的数据流的确很多种类,而自己 ... -
java学习之图片上传,下载显示demo
2015-01-19 10:43 2541每次都是用的框架来弄 ... -
java学习之String的一些处理函数
2014-12-12 17:17 554前两天开发一个关于解析数据的一个小功能,发现需要大肆的用到St ...
相关推荐
在Java编程语言中,重载、重写、继承与多态是四个非常核心的概念,它们在面向对象编程中扮演着至关重要的角色。接下来,我们将详细探讨这些概念,并通过实例加以说明。 ### 重载(Overload) 重载是指在同一个类中...
在Java中,多态主要体现在方法的重写(Override)和重载(Overload)。方法重写是指子类中定义了与父类同名且参数列表相同的方法,但方法体不同,这使得子类对象可以调用到自己特有的实现。而方法重载则是指在同一个...
在 Java 中,多态可以通过使用 override 和 overload 关键字来实现。例如,一个子类可以重写父类的方法,或者提供多个相同名称的方法,但是这些方法的参数列表不同。 结论 本文对 Java 面向对象编程的三大特性:...
在Java中,多态主要体现在方法的重写(Override)和方法的重载(Overload)。重写是指子类对父类的虚方法给出自己的实现,而方法重载则是在同一类中定义多个同名但参数列表不同的方法。 - **方法的重写(Override...
在Java中,多态主要体现在方法重写(Override)和方法重载(Overload)。 - **方法重写**:子类可以重写父类的非私有方法,提供自己的实现。这样,当使用父类引用指向子类对象时,调用的是子类的重写方法,实现动态...
### 学习笔记: 抽象封装、继承、多态 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”来设计软件。对象是由数据(即字段或属性)和对这些数据进行...
- **重载(Overload)**:在同一个类中可以有多个同名但参数列表不同的方法,这是编译时的多态,系统会根据传入参数的类型和数量选择合适的方法执行。 2. **继承**是类之间的关系,子类继承父类,获取其属性和方法...
继承与多态是面向对象编程中的核心概念,它们在Java等面向对象编程语言中有着广泛的应用,对于企业级开发人员来说,理解和掌握这两个概念至关重要。 继承是类与类之间的一种关系,一个类(子类)可以继承另一个类...
Java中的重载(Overload)和重写(Override)是两个重要的面向对象概念,它们都是实现多态的方式,但有着本质的区别。 **重载(Overload)** 重载发生在同一类或具有继承关系的类中,它允许创建多个同名方法,但这些方法...
总结,这个PPT学习教案涵盖了Java中关于继承、多态、覆盖、重载、构造函数重载、内部类与匿名类以及接口的基本概念和使用,这些都是Java面向对象编程的基础,对于理解Java编程模式和设计模式至关重要。通过学习这些...
本文将详细介绍Java中的多态机制,包括重写、重载、子类与父类的继承以及Java多态的应用等方面。 #### 二、多态的定义与重要性 多态性来源于希腊语“polymorphism”,意指“多种形式”。在面向对象编程中,多态是...
Java中的方法重载(Overloading)和重写(Overriding)是两个重要的概念,它们都是实现多态性的方式,但有着本质的区别。 1. **方法重载(Overloading)**: 方法重载是指在同一个类中可以有多个同名方法,但这些方法的...
1. **编译时多态(静态多态)**:主要通过方法重载(Overload)实现,即在同一个类中可以有多个同名但参数列表不同的方法。 2. **运行时多态(动态多态)**:基于继承和方法重写,通过父类引用指向子类对象,调用被...
在面向对象编程中,方法重写(Override)和方法重载(Overload)是两个非常重要的概念。它们虽然都涉及到方法名称的重复使用,但是其本质含义、作用以及应用场景有着明显的区别。 #### 一、Override(方法重写) *...
Java中的继承和多态是面向对象编程的两个核心概念,它们极大地增强了代码的复用性和灵活性。在这篇文章中,我们将深入探讨这两个主题。 首先,我们来看一下继承。继承是类与类之间的一种关系,其中一个类(子类)...
在Java中,多态主要体现在方法的重写(Override)和重载(Overload)上。 6. **多态的好处**:多态能够提高程序的灵活性,使得代码更具有一般性,减少代码的修改和维护。当需要增加新的子类时,无需修改父类或调用...
1. **继承的语法**:在Java中,实现继承的关键字是`extends`。子类通过继承父类可以获得父类的所有非私有的成员变量和方法,具体语法为: ```java public class 子类名 extends 父类名 { // 子类中的代码 } ```...
4. **多态**:多态是指同一种行为可以有不同的表现形式,具体体现在方法重写(Override)和方法重载(Overload)。通过多态,我们可以编写更灵活、更具扩展性的代码。 接下来,压缩包中的"理论贯穿案例"部分可能...
在Java中,多态分为编译时多态(方法重载)和运行时多态(方法重写)。编译时多态是通过方法签名的不同来实现,而运行时多态是通过对象的引用调用子类重写的方法来体现。Java的向上转型和接口也是实现多态的重要手段...