- 浏览: 202571 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (175)
- JAVA BASIC (34)
- 资料 (2)
- WEB (4)
- Android (2)
- DBMS (2)
- 我的小东西 (4)
- IT生活 (6)
- portal (1)
- jsp (6)
- user experience (1)
- SSH (12)
- Flex (13)
- FLEX DEBUGER does not work (1)
- teacher (1)
- tools (2)
- maven (3)
- opensource (3)
- OUTLOOK (1)
- 经验之谈 (4)
- SQL (2)
- BOOK (1)
- jprofiler (1)
- hp veer 4g (2)
- axis2 (1)
- JAVASCRIPT (8)
- httpd (2)
- Webservice (3)
- JBOSS (9)
- JPA (2)
- JSF (1)
- XMLBean (1)
- J2EE6 (1)
- apache (1)
- HTML (1)
- review (1)
- Spring (7)
- hot cache (1)
- Websphere (1)
- 软件管理 (1)
- redis (1)
- Sitemesh (1)
- JDBC (1)
- http (2)
- linux (3)
- new-framework (2)
- Log4j (3)
- JMX (1)
- springmvc (2)
- Sprint Boot (1)
- NIO (2)
- mongodb (1)
- 一个监控系统引发的学习 (1)
- kafka消息只消费一次应该怎么做 (1)
- 一眼识别程序功力 (1)
最新评论
-
tcgdy0201:
挖!博主好棒!博主好腻害!
logback.xml immediate=false 到底缓存空间是多大 -
k1280000:
jasonlong10 写道 楼主别光写报错,有没什么解决方法 ...
SpringMVC 在 Jboss 下会报的 warn -
jasonlong10:
楼主别光写报错,有没什么解决方法啊?
SpringMVC 在 Jboss 下会报的 warn -
rtttyu23:
不错,没报错了...这些配置的文件真麻烦,不深入了解,配置的很 ...
Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initializa -
thinkcq168:
这样还是不可以,还是报错,我也有同样的错误,求高手!
Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initializa
子类
public class SubClass extends SuperClass.InnerClass { SuperClass superClass; public SubClass (SuperClass superClass){ superClass.super(); //由于内部类构建器必须同封装类对象的一个句柄联系到一起, //所以从一个内部类继承的时候这里建立一个句柄 this.superClass = superClass; } public void show(){ System.out.println(this.returnPrivates()); } }
父类: 有一个private 的字段privates
public class SuperClass { private String privates = "know by Super itsself"; public class InnerClass { public String returnPrivates(){ return privates; } } }
测试类:
public class Test { public static void main(String[] args) { SubClass sub = new SubClass (new SuperClass()); sub.show(); } }
--------如何实现继承内部类 (转) http://hi.baidu.com/huhoo99/item/6308b1c40d95f97789ad9eb1 --------------------------------------------------
从内部类继承 由于内部类构建器必须同封装类对象的一个句柄联系到一起,所以从一个内部类继承的时候,情况会稍微变得有些复杂。这儿的问题是封装类的“秘密”句柄必须获得初始化,而且在衍生类中不再有一个默认的对象可以连接。解决这个问题的办法是采用一种特殊的语法,明确建立这种关联: //: InheritInner.java// Inheriting an inner classclass WithInner { class Inner {}}public class InheritInner extends WithInner.Inner { //! InheritInner() {} // Won't compile InheritInner(WithInner wi) { wi.super(); } public static void main(String[] args) { WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); }} ///:~ 从中可以看到,InheritInner只对内部类进行了扩展,没有扩展外部类。但在需要创建一个构建器的时候,默认对象已经没有意义,我们不能只是传递封装对象的一个句柄。此外,必须在构建器中采用下述语法: enclosingClassHandle.super(); 它提供了必要的句柄,以便程序正确编译。 7.6.7 内部类可以覆盖吗? 若创建一个内部类,然后从封装类继承,并重新定义内部类,那么会出现什么情况呢?也就是说,我们有可能覆盖一个内部类吗?这看起来似乎是一个非常有用的概念,但“覆盖”一个内部类——好象它是外部类的另一个方法——这一概念实际不能做任何事情: //: BigEgg.java// An inner class cannot be overriden // like a methodclass Egg { protected class Yolk { public Yolk() { System.out.println("Egg.Yolk()"); } } private Yolk y; public Egg() { System.out.println("New Egg()"); y = new Yolk(); }}public class BigEgg extends Egg { public class Yolk { public Yolk() { System.out.println("BigEgg.Yolk()"); } } public static void main(String[] args) { new BigEgg(); }} ///:~ 默认构建器是由编译器自动合成的,而且会调用基础类的默认构建器。大家或许会认为由于准备创建一个BigEgg,所以会使用Yolk的“被覆盖”版本。但实际情况并非如此。输出如下: New Egg() Egg.Yolk() 这个例子简单地揭示出当我们从外部类继承的时候,没有任何额外的内部类继续下去。然而,仍然有可能“明确”地从内部类继承: //: BigEgg2.java// Proper inheritance of an inner classclass Egg2 { protected class Yolk { public Yolk() { System.out.println("Egg2.Yolk()"); } public void f() { System.out.println("Egg2.Yolk.f()"); } } private Yolk y = new Yolk(); public Egg2() { System.out.println("New Egg2()"); } public void insertYolk(Yolk yy) { y = yy; } public void g() { y.f(); }}public class BigEgg2 extends Egg2 { public class Yolk extends Egg2.Yolk { public Yolk() { System.out.println("BigEgg2.Yolk()"); } public void f() { System.out.println("BigEgg2.Yolk.f()"); } } public BigEgg2() { insertYolk(new Yolk()); } public static void main(String[] args) { Egg2 e2 = new BigEgg2(); e2.g(); }} ///:~ 现在,BigEgg2.Yolk明确地扩展了Egg2.Yolk,而且覆盖了它的方法。方法insertYolk()允许BigEgg2将它自己的某个Yolk对象上溯造型至Egg2的y句柄。所以当g()调用y.f()的时候,就会使用f()被覆盖版本。输出结果如下: Egg2.Yolk() New Egg2() Egg2.Yolk() BigEgg2.Yolk() BigEgg2.Yolk.f() 对Egg2.Yolk()的第二个调用是BigEgg2.Yolk构建器的基础类构建器调用。调用 g()的时候,可发现使用的是f()的被覆盖版本。
发表评论
-
网络知识定向,扫盲
2015-05-06 20:14 295TCP/IP、Http、Socket的区别 http:/ ... -
java.net.socketinputstream.socketread0 hangs thread
2015-04-29 16:25 1582http://javaeesupportp ... -
使用Hibernate Validator 完成 字段的自动验证
2014-11-13 18:23 765如题 1. maven 中引入 < ... -
JAVA 序列化
2014-05-11 18:06 523再读序列化 http://www.blogjava.net ... -
synchronized (obj) 锁住不同的对象的话
2014-03-27 08:58 2476Obj package com.james.thr ... -
annotation 生成代码(命令行,Eclipse,Maven下运行)
2013-01-04 15:19 724what is annotation ? http ... -
越挖越有意思,annotation generate code --> create eclipse plugin -->osgi
2012-12-27 16:42 630越挖越有意思,annotation generate code ... -
annotation 学习
2012-12-27 13:57 734basic ENGLISH: http://www. ... -
execute bat file in java
2012-12-24 15:38 629String path="cmd /c sta ... -
字符串匹配问题
2012-07-16 14:07 647转自 http://weijinxian.iteye.com/ ... -
inherit
2012-07-03 00:00 656继承父类的实例方法是覆盖,而且继承静态方法则是隐藏。 ... -
interface
2012-07-01 23:34 653http://docs.oracle.com/javas ... -
java.util.ResourceBundle使用详解(转)
2012-06-12 16:27 814转 java.util.ResourceBundle使用详解 ... -
对两个LIST对行比对,筛选
2011-12-26 16:00 1131对两个LIST对行比对,筛选 以下两种方法比对中会发现 ... -
java程序代理上网
2011-12-05 15:34 1298哎,在网上搜好久 看来网上还是有很多吭爹的,害我搞了好久 ... -
PO/VO/DTO/DAO/POJO 名词解惑
2011-10-25 10:43 965PO/VO/DTO/DAO/POJO 名词解惑 ... -
中文的正则表达式
2011-09-27 10:56 974此表达式也行 \\p{InCJKUnifiedIdeogra ... -
基础JAVA IO 详解(转)
2011-09-22 12:36 612JAVA IO http://developer.51cto ... -
question in reading java reflect
2011-08-24 10:15 7041. create the dynamic instance ... -
log4j 入门小例子
2011-06-24 14:38 720log4j http://edu.codepub.co ...
相关推荐
标题“WPF继承_子类继承父类,实现跨类调用方法”表明我们将讨论如何在WPF应用程序中利用继承来实现在不同类之间进行方法调用。 1. **类继承基础** - 在C#中,我们使用`:`符号来表示一个类继承自另一个类。例如,...
在C#中,类继承是通过继承父类的字段和方法来实现的。但是,私有字段的继承是如何实现的呢?在父类中,私有字段是无法被子类访问的,这使得我们很难理解私有字段的继承机制。 在本文中,我们将通过一个示例程序来...
类的继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。下面将详细探讨`extends`关键字在Java中的使用、特点以及相关知识点。 1. **类的继承...
这个主题涉及到面向对象编程的基本原理,特别是子类继承父类后如何访问和操作子类特有的属性。下面我们将深入探讨这个话题。 首先,我们了解基本的继承概念。在Java中,一个类(子类)可以继承另一个类(父类),...
静态内部类不持有对外部类的引用,而非静态内部类则需要一个外部类的实例才能被实例化。 2. **匿名内部类**:这是一种没有名字的内部类,通常用于创建一次性使用的类。匿名内部类可以继承一个类或实现一个接口,...
3. 继承:子类继承父类的属性和行为,实现代码重用和类层次结构。 4. 多态:通过继承实现,允许使用父类指针或引用处理不同子类的对象,提高了程序的灵活性和可扩展性。 5. 测试用例:编写用于验证类功能的代码,...
然而,私有成员(private)不会被继承,但可以通过内部类或者友元类访问。 多态性是继承的关键特性之一。多态允许我们使用父类引用指向子类对象,从而可以调用子类重写或扩展的父类方法。这在处理不同类型的对象时...
`this`关键字则用于在类内部引用当前对象,常用来调用本类的方法或访问本类的字段。例如: ```java public class MyClass { private String myField; public MyClass(String myField) { this.myField = myField;...
继承允许子类继承父类的所有非私有(public和protected)成员,包括字段(变量)和方法。这减少了代码重复,提高了代码的复用性。子类可以扩展或修改父类的功能,而无需完全重新编写父类的代码。 在Java中,继承的...
子类除了可以继承父类中的字段及方法之外,还可以增加自己的成员方法。 通过继承和多态,我们能够快捷的开发出新的类,而不需要编写相同的代码,从而大大将少了工作量。同时,继承和多态也使得代码更加灵活和可维护...
总之,实现对字段和方法的递归查找是软件开发中的一个重要技能,它涉及类层次结构、接口、注解、反射等多个方面。掌握这项技术有助于我们更好地理解和操作复杂的代码库,提高代码质量和可维护性。在实践中,我们可以...
它允许创建一个新类(子类),该类不仅具有自身的属性和方法,还能直接继承一个或多个已存在的类(父类)的属性和方法,从而实现代码的重用和扩展。这种机制使得Java程序设计更加灵活和模块化。 **类的定义与继承**...
异常类也可以通过继承来建立层次结构,Java 的 `Exception` 类是所有异常类的父类。 综上所述,Java 类的继承是其面向对象编程的重要组成部分,它使我们能够构建复杂、模块化的软件系统,并有效地管理和重用代码。...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理等。...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部属性、方法和实现。本教程聚焦于通过反射获取运行时类的父类以及父类中的泛型信息。这是一项高级技能,对理解和调试...
在这个例子中,`Car`类通过继承`Vehicle`并重写`drive()`方法,实现了对车辆驾驶行为的定制。 总之,类的继承在Java中是一个强大的工具,它使得我们可以构建复杂且相互关联的类体系,提高了代码的可读性、可维护性...
Java的继承性是其面向对象特性的重要组成部分,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的复用和扩展。这种机制大大提高了软件开发的效率和灵活性,同时也支持了面向对象...
当子类继承父类时,需要通过显式调用父类的构造器来初始化父类中的数据成员。这通常通过`super()`关键字完成。 **2.5 多层继承** Java支持多层继承,即一个类可以从另一个类继承,而这个父类本身也可以从另一个...
继承允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和行为,从而实现代码的复用和模块化。在C#中,类的继承语法如下: ```csharp [修饰符] class 子类名: 父类名 { // 新增派生成员 } ``` 例如,...