- 浏览: 1058039 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (279)
- Apache net (10)
- JBoss Rules (3)
- Seam ACL (1)
- Seam (14)
- Seam JPA高级权限验证 (8)
- 待解决的问题.... (1)
- JAVA (43)
- Dwr (4)
- Ajax4JSF (1)
- JavaScript (27)
- 生活小常识 (17)
- Richfaces (3)
- seam自己经历 (14)
- JDBC (1)
- mysql (6)
- WebService (10)
- Java Web (4)
- Hibernate (13)
- J2EE框架整合 (3)
- Spring (9)
- BEA Weblogic (1)
- XML (1)
- log4j (6)
- CSS (2)
- javaIO文件的读写 (5)
- SVN服务器的安装 (5)
- powerDesigner (2)
- SQL常用语句 (3)
- wicket初学 (5)
- eclipse (7)
- 正则表达式 (1)
- ExtJS (6)
- maven(m2eclipse) (1)
- struts2.0 (9)
- JPA (6)
- struts2.0整合spring2.5 (9)
- linux (6)
- Oracle (5)
- Servlet (3)
- MyEclipseGen (0)
最新评论
-
qq_31247573:
JAVA 获取http返回XML的数据 -
jasmine_20100810:
...
linux下tomcat服务的启动、关闭与错误跟踪 -
weiaiFang0624:
视频下载地址:http://download.csdn.net ...
there is no action mapped for namespace / and action name解决办法 -
p476462534:
JS控制表单form的提交 -
dandongsoft:
aaaaaaaaaaaaaaa
httpClient,JAVA访问http request response
1. 继承: (1)子类的构造方法一定会调用父类的构造方法。 (2)任何子类构造方法第一行肯定是this();或者super();两个择一。 this();调用本类的其它构造方法。(传递相应参数调用相应的方法) super();调用父类的构造方法。 (3)如果子类的构造方法中没有显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法 ---子类创建实例对象的时候是否可以调用父类(抽象类)的构造方法?这里是必须调用的。 (4)如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错 (5)构造方法不能继承:子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法 (6父类构造方法:子类的构造方法必须调用父类的构造方法! 子类和抽象类: (1)父类是抽象类,实例化一个子类,如果子类的构造方法没有显示的用super或者this,则会用默认的this来调用父类的无参的构造方法,而且这 个是子类的构造方法中首先执行的方法,即首先调用父类的构造方法,接着再调用子类的构造方法。 (2)如果在子类的实例中调用了父类的方法,而这个方法子类中没有重写,则会去调父类中的那个方法;如果子类重写了则调用的就是子类的方法。 (3)如果在父类中调用了父类的抽象方法,则默认的会去调用子类中已经实现了这个抽象方法的子类方法。 2. 覆盖: 子类覆盖父类前提: (1) 同名,同参数列表,同返回类型。 (2) 子类覆盖后的方法的访问权限只能比父类相同或者更宽广。 (3) 子类覆盖后的方法抛出的异常不能比父类更宽广。 (4) is-a:指继承。 has-a:指类实例具有对另一个实例的引用。 (5) 对于继承关系:当子类的对象来调用父类中的方法时,则执行的是父类只中原有的方法, 这和多态不一样,如果子类覆盖掉父类的这个方法时,则调用的是子类的这个方法。 (6)继承中注意的问题: 重写(也叫覆盖,也叫重构):重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型; 重写方法不能使用比被重写方法更严格的访问权限。 重写是类与类之间的关系,两者必须是继承关系。重载是方法与方法之间的关系。 3. 多态: (1) 前提:把子类对象当成父类对象来看。 (2) 把子类对象当成父类对象来看时:只能调用父类中定义的属性和方法。 (3) 把子类对象当成父类对象来看时:如果子类覆盖了父类中的方法,则调用的 是子类覆盖后的这个方法。 但是如果调用属性时是调用父类的属性而并非子类的,所以尽量不要定义 父子类同名的属性。 (4) 把父类强制转换成子类时,则调用的是子类中的方法。 4. 静态方法不能叫"多态". 切记! 静态方法不可被覆盖,如果子类和父类有重名的静态方法,虽然编译通过,但并不能实现多态,所以不能 叫"覆盖"。例如:Animal a = new Bird(); a.move();如果是"多态"的话应该输出的结果为,子类中的结果, 但是实际不是,它是调用的是父类中的方法。所以不能叫"覆盖(多态)"。
多态: Animal a = new Bird(); a客观是鸟(客观类型) Bird b = (Bird)a ; 其中:Animal a,在编译时a为Animal。编译类型叫"编译时多态",主观。 new Bird(),叫:"运行时多态",客观。 Bird b = (Bird)a ;把父类强制转换成子类。 if(a instanceof Animal) ----> 编译类型 if(a instanceof Bird) -----> 客观类型 if(b instanceof Animal) -----> 自动向上兼容
this的用法: this._ (区分局部变量与全局变量,有重名时用) this(参数类表) super的用法: super._(区分子类与父类同名属性,以后建议不要定义相同的同名属性) super(参数列表)
写一个类时,同时顺手的要加上一个无参的构造方法,有其它类继承它时, 系统会自动加上super();但父类如果没有无参的构造方法就会报错。
覆盖(重写)和重载的区别: 覆盖:(1) 是父子类之间. (2) 父子类同名,相同的参数列表,相同的返回类型。 (3) 子类访问的权限比父类要高。 (4) 子类抛出的异常比父类小。 重载:(1) 多数针对一个类. (2) 方法名相同,参数列表不同,与返回类型无关。 (3) 也可能出现在父子类中。 (4) 一般会想到构造函数,有无参的构造函数,一个参数的,两个参数的。
补充:
public class Test { public static void main(String[] args){ A a = new B(); 这里是把子类当成父类来看,则只能调用父类中定义的属性和方法。 //a.hello(5); 如果子类覆盖了父类中的方法,则调用的是子类覆盖后的那个方法。 B b = (B)a; 这里是把父类强转成子类,这里千万不能写成A a = new A();这样的话运行时会报错,只能是上面的那个A a = new B(); b.hello(4);强转后调用的是子类中的方法(对覆盖来说) b.hello2();强转后也可以调用父类中的方法 } } class A{ public void hello(int i){ System.out.println("A="+i); } public void hello2(){ System.out.println("hello2"); } } class B extends A{ public void hello(int j){ System.out.println("B="+j); } 下面的这个方法不是覆盖哦!要看好覆盖的前提哦~! public void hello(long l){ System.out.println("B2="+l); } }
发表评论
-
java 格式 ISO 8601 日期
2011-10-18 18:25 2880最终转化的格式如下: ISO format: 2011-10- ... -
SimpleDateFormat
2010-08-17 23:20 1581******字符串转化成日期的效率比日期转化成字符串的效率要高 ... -
JAVA判断不等于空的情况
2010-08-12 09:49 5971判断不等于空的情况,千万不要搞混淆。 if(orderId ... -
如何设置JDK环境变量
2010-06-12 22:35 1255依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量 ... -
Collections.sort排序的用法
2010-04-02 16:11 5610private void sortScene(Movie m) ... -
java发邮件的包commons-email-1.0.jar
2010-03-26 10:41 1592java发邮件的包commons-email-1.0.jar -
httpClient,JAVA访问http request response
2009-12-23 11:02 10057package com; import java.io. ... -
jcaptcha生成图形验证码的Java开源组件
2009-12-23 10:57 1565jcaptcha生成图形验证码的Java开源组件 -
JAVA读取excel的包jxl.jar和jexcelapi_2_6_9_1.4.zip
2009-12-23 10:51 2244JAVA读取excel的包jxl.jar和jexcelapi_ ... -
java二维数组的遍历和JS的数组比较
2009-12-19 13:02 5683Object[][] srcs = { {1514l ... -
java获取图片的宽和高
2009-12-18 09:47 24889有两种要考虑的情况: 一种是:(图片在本地可以预览到),方法 ... -
JAVA 获取http返回XML的数据(另一篇)
2009-12-17 12:04 12417JAVA-用HttpClient来模拟浏 ... -
JAVA 获取http返回XML的数据
2009-12-17 11:37 32568下面有我自己的代码和 ... -
String字符编码转换
2009-12-17 10:41 3371String newStr = new String(oldS ... -
完全数的java代码
2009-12-14 14:28 3306求1到100000之间的所有的“完全数”,好像是叫“完全数”, ... -
做template时配置文件的解析
2009-12-06 12:12 14581.页面中有Page.action?returnPage=sc ... -
Java中的23种设计模式
2009-11-23 16:55 1152Java中的23种设计模式: Factory(工厂模式) ... -
java的一道笔试题
2009-11-17 16:52 1147java的一道笔试题: public class Test ... -
String的replace的奇怪用法
2009-11-05 18:03 11871.代码如下: String strIds = sceneI ... -
java中值传递和引用传递区别
2009-10-14 17:01 4258这段代码的主要部分调用了两个很相近的方法,cha ...
相关推荐
学习-java继承和多态之接口java继承和多态之接口.zip
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
JAVA继承和多态实验报告.doc
本实验报告的目的是为了掌握Java语言中的继承和多态机制,通过模拟编写程序,理解类的继承、多态、继承和多态规则,并独立编程,实现类的继承和多态。 继承机制 在Java中,继承是一种机制,允许一个类继承另一个类...
Java继承是指一个类从另一个类继承成员变量和成员方法的过程。继承是面向对象编程的核心机制之一,它允许我们创建一个新的类,并继承另一个类的成员变量和成员方法,从而简化代码编写和维护。 在Java中,继承是通过...
Java继承与多态实验报告.doc
面向对象编程是Java的核心特性,本教程主要涵盖了三个关键概念:封装、继承和多态,以及相关的访问修饰符和方法修饰符。 封装是面向对象编程的基础,它涉及到将数据(属性)和操作这些数据的方法(行为)组合在一个...
在本文中,我们详细讨论了Java中继承和多态的基本概念,包括里式代换原则、方法重载、构造函数重载和方法覆盖等。通过掌握这些概念,我们可以在实际开发中更好地利用Java语言提供的工具,提高代码质量,加速开发过程...
程序设计实验四:继承、多态与接口.doc
Java编程语言是面向对象的,其中继承和多态是核心概念。这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承...
C#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdf C#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdf
里面的内容为: 第1关:学习-Java继承和多态之接口
JAVA 封装继承与多态是面向对象程序设计语言中三个重要的概念,本文将对这三个概念进行详细的解释。 一、封装 封装是指隐藏对象的内部细节,使对象外部不能随意存取对象的内部数据的过程。JAVA 中,对象就是一个...
易语言源码易语言的继承多态演示源码.rar 易语言源码易语言的继承多态演示源码.rar 易语言源码易语言的继承多态演示源码.rar 易语言源码易语言的继承多态演示源码.rar 易语言源码易语言的继承多态演示源码.rar ...
本文将详细介绍继承和多态的概念、特点、种类和应用场景。 一、继承 继承是面向对象程序设计中的一种机制,它允许开发者创建新的类,而这些类可以继承已经存在的类的特性和行为。继承的主要特点是: * 继承可以...
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
练习-java继承和多态之综合练习.zip
继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是使用 `extends` 关键字,例如 `public class Child extends Parent`。在 Java 中,只支持单一继承,也就是说一个类只能有一个直接父类...
本资源摘要信息是关于 Java 中继承和多态的题目,涵盖了面向对象编程的基本概念和继承机制的应用。 继承的概念 继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。继承的目的是...