- 浏览: 420825 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
pmh905001:
写的很详尽,感谢!
解析jvm.dll和java.exe -
Bll:
插得真深啊,我的是(eclipse_j2ee_juno):F: ...
在eclipse里jsp编译后的java和class文件的位置 -
heming_way:
谢谢,对我很有用,解答了我对多值依赖的疑问
关于多值依赖--范式! -
JavaStudy2011:
java语言解析xml文件 -
vrussell:
Thanks man, it helps me a lot!
获得IEditorPart和IDocument
前面的文章提到 重写时子类中方法的修饰符的权限不能大于父类的权限
这里重要写多态
虽然是在Parent类中
DuotaiParent dp=new DuotaiChild();
太还是调用了子类的函数DI()
字节码中是这样写的
DuotaiChild duotaichild = new DuotaiChild();
这就是动态绑定.....
如果这是把Parent中的dI方法改为private的!那么会怎么执行呢??
会执行本身类中的方法
这里也就有这样的定论
当执行的同名函数 自身的函数时private时,执行自身的这个函数!因为权限大!即使是private而子类中不会执行这个方法除非是通过执行父类中其他方法但在其中调用这个方法时才是执行父类的方法!
运行child类
打印
public--parent
di2--parent
child--ublic
把Parent中的dI2给为public试试 有什么区别
打印
public--parent
child--di2
child--ublic
看出区别了吗??
这里重要写多态
public class DuotaiChild extends DuotaiParent{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new DuotaiChild().dI(); DuotaiParent dp=new DuotaiParent(); dp.dI(); } public void dI() { System.out.println("child"); } public void dI2() { System.out.println("child--di2"); } }
public class DuotaiParent { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DuotaiParent dp=new DuotaiChild(); dp.dI(); } public void dI() { System.out.println("parent"); dI2(); } void dI2() { System.out.println("di2--parent"); } }
虽然是在Parent类中
DuotaiParent dp=new DuotaiChild();
太还是调用了子类的函数DI()
字节码中是这样写的
DuotaiChild duotaichild = new DuotaiChild();
这就是动态绑定.....
如果这是把Parent中的dI方法改为private的!那么会怎么执行呢??
parent di2--parent
会执行本身类中的方法
这里也就有这样的定论
当执行的同名函数 自身的函数时private时,执行自身的这个函数!因为权限大!即使是private而子类中不会执行这个方法除非是通过执行父类中其他方法但在其中调用这个方法时才是执行父类的方法!
import newToday.DuotaiParent; public class DuotaiChild extends DuotaiParent{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //new DuotaiChild().dI(); DuotaiParent dp=new DuotaiChild(); //dp.dI(); } public void dI() { System.out.println("child"); //dI2(); } public void dI2() { System.out.println("child--di2"); } }
public class DuotaiParent { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } private void dI2() { System.out.println("di2--parent"); } public DuotaiParent() { System.out.println("child--public"); dI2(); } }
运行child类
打印
public--parent
di2--parent
child--ublic
把Parent中的dI2给为public试试 有什么区别
打印
public--parent
child--di2
child--ublic
看出区别了吗??
public class DuotaiChild extends DuotaiParent { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new DuotaiChild().dI(); DuotaiParent dp=new DuotaiChild(); //dp.dI();这里报错 得出是调用的是parent中的dI私有方法---这时看前面的引用类型! //如果有私有方法会调用私有方法!!前提条件是可见的条件下!! //且要记住 父类的权限一定会大于子类的!不会出现 子类是private 而父类是public的! } public void dI() { //super.dI(); System.out.println("child"); } public void dI2() { System.out.println("child--di2"); } public DuotaiChild() {//System.out.println("child--public"); } }
public class DuotaiParent { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DuotaiParent dp=new DuotaiChild(); dp.dI();//这里调用的就是 前面引用的 方法 因为是私有的!!但调用的di2和构造函数中调用的dI2()确实调用的子类的 //这里就符合了动态绑定----类似的实现还有 super } private void dI() { System.out.println("parent"); dI2(); //DuotaiChild.di3(); } public void dI2() { System.out.println("di2--parent"); } public DuotaiParent() { //System.out.println("public--parent"); dI2(); } static { //System.out.println("static--parent"); } }
发表评论
-
关于无法delete文件
2011-09-26 17:12 1428File f=new File(targetDir+&qu ... -
正则表达式匹配替换网址
2011-08-30 13:10 3445有这么一个需求, 网页里所有的src="/web/ ... -
汉字编码
2011-07-29 11:08 942一、汉字编码的种类 汉字编码中现在主要用到的有三类, ... -
符编码笔记:ASCII,Unicode和UTF-8
2011-07-29 10:37 937阮一峰 日期: 2007年10月28日 1. ASCII码 ... -
Class.getResource
2011-07-21 13:19 1025用JAVA获取文件,听似简单,但对于很多像我这样的新人来说, ... -
学习内部类的总结
2010-10-24 11:23 941public class TestInnerStatic ... -
Classloader加载类的问题探讨
2010-09-06 14:28 1015首先在C:\Program Files\Java\jdk1.6 ... -
学习spring IOC AOP
2010-09-03 11:28 2448一.什么是控制反转模式? 不创建对象,但是描述创建它们的方 ... -
有符号类型转为无符号类型
2010-09-01 17:29 1453int toUnsigned(short s) { ... -
学习 utf-8总结
2010-08-15 16:45 851在ultraEditor中查看字符 “中国”的utf-8格式的 ... -
unicode
2010-08-15 16:02 1345Unicode是国际组织制定 ... -
关于集合的remove
2010-06-01 13:15 1118public class collectionsTest ... -
字符和整型的各种表示方法
2010-05-28 15:52 1428一个字符 的表示 '\u12ab'这种表示方法表示unico ... -
一个程序中String==String两种输入
2010-05-28 10:56 965今天帮别人写个程序 无意中发现的!! private v ... -
js中的if和Java中的if
2010-05-21 14:20 1574if(-323) { alert("if&q ... -
float和double精度
2010-05-19 10:55 2474float与double的范围和精度 1 范围 float和 ... -
类装载器
2010-05-13 14:08 1430类装载器是Java程序 ... -
子类重写父类的方法中有10种要求
2010-05-11 12:25 2301昨天发了一个帖子 parent.class ... -
the static method cannot hide instance method from object
2010-05-10 22:17 1278public class CloneInit implem ... -
proctected属性和方法的包依赖性
2010-05-08 20:34 1137这个说法是为理解自己造的 package testpro ...
相关推荐
"Java多态性详解" Java多态性是面向对象编程的基本特征之一,它允许子类继承父类,并对父类的方法进行重写或重载,以实现更多的灵活性和可扩展性。在Java中,多态性的体现主要有两种形式:方法的重载和方法的重写。...
Java多态性是面向对象编程中的一个重要特性,它允许我们使用父类引用指向子类对象,从而实现一种灵活的代码设计。在这个“java多态性练习”中,我们将深入探讨多态性的概念、抽象类(abstract class)以及它们在实际...
Java多态性是面向对象编程中的一个重要概念,它在Java中起到了关键的作用,使得程序更加灵活,可扩展性更强。本实验将深入探讨Java多态性的核心原理与应用。 首先,我们要理解多态性的基本含义。多态性...
### Java多态性实验知识点解析 #### 实验背景与目的 本次实验主要目的是让学生通过实践操作,深入理解Java中的多态性概念,并掌握如何利用多态性实现代码的灵活性和可扩展性。实验中,学生将通过编写一个处理复数...
本文将深入探讨Java多态性的概念、实现机制以及相关的编程规则。 一、基本概念 多态性意味着一个接口可以有多种不同的表现形式。在Java中,可以通过子类对象引用赋值给超类对象引用变量来实现这一特性。这意味着,...
Java 多态性是面向对象技术的三大特性之一,它通过继承中的覆盖(动态多态性)和方法的重载(静态多态性)实现的。在Java中,多态性指的是一个名词可以有多个语义。 多态性的实现 Java 的多态性可以通过两种方式...
Java 多态性 Java 的多态性是面向对象编程的三个特征之一,另外两个是封装和继承。多态性是指同一个方法可以根据不同的对象而有不同的行为,或者说同一个方法可以根据不同的对象而有不同的实现。 Java 之所以引入...
Java 多态性详解 —— 父类引用子类对象 多态性是 Java 面向对象编程的三个特征之一,另外两个是封装和继承。多态性是指通过方法的重写、重载和动态连接来实现的。在 Java 中,多态性是为了解决单继承问题而引入的...
【Java编程教程】详解Java 多态性 Java 作为一门面向对象的编程语言,其核心特性之一就是多态性。多态性使得程序在设计上具有更高的灵活性和可扩展性,允许我们以多种方式执行相同的操作。多态性这个概念来源于希腊...
"基于反射机制的数据流Java多态性实现及研究" 本文主要介绍了基于反射机制的数据流Java多态性实现及研究。数据流Java是一种并行程序设计模型,它也具有面向对象程序多态的概念,反射机制允许程序运行时动态地加载一...
Java多态性涉及到的关键词包括:extends(继承)、implements(实现接口)、abstract(抽象类和方法)、virtual(虚函数,C++中的概念)、Override(覆盖)、Overloading(重载)、Encapsulation(封装)等。...
Java多态性的实现.pdf
### 使用Java多态性实现一个简单的动物园管理系统的知识点解析 #### 一、抽象类与抽象方法 本系统中,`Animal`被定义为一个抽象类,这意味着它不能被实例化,仅能作为其他类的基础来扩展。抽象类的存在主要是为了...
可以更清楚的了解java,帮助你认识java的多态性
Java多态性之隐式重载的应用分析.pdf
java类和对象继承多态性 java类和对象继承多态性是java语言中的一种基本机制,它允许开发者创建一个新的类,并继承已有的类的属性和行为。这种机制可以提高代码的复用性和维护性。 继承是java语言中的一种机制,...
Java的多态性是面向对象编程(OOP)的三大特性之一,它允许程序设计者以通用的方式处理不同的数据类型,增强了代码的复用性和灵活性。本文将深入探讨Java中的多态性,特别是“父类引用子类对象”的概念,以及这一特性...
"Java多态性定义与用法实例详解" 本文主要介绍了Java多态性定义与用法,详细分析了多态的概念、功能以及Java定义与实现面向对象多态性的相关操作技巧。 一、基本概念 多态性是指发送消息给某个对象,让该对象自行...
4. **多线程**:Java内置了对多线程编程的支持,允许开发者创建同时执行的多个线程。 5. **网络编程**:Java提供了丰富的网络通信API,使得开发网络应用变得容易。 6. **安全性**:Java提供了一个安全