首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java中,Find字段属于哪个类,父类还是子类?

相关·内容

Java的加载机制---子类的多态调用

Auto-generated method stub ExtendsInstanceTest b = new Sub(); } } 他的输出结果是  null 1) 上面程序最大的难点,也是最重要的地方就是:的构造函数调用了虚函数...3) 构造的时候,Java机制是到底先给属性分配空间并赋值,还是先处理 构造函数,换句话说,当我们使用new操作符生成一个对象的实例的时候,的加载机制是怎么样的, 如果这三个问题都搞定了,都理解了,...,对应着前半句的意思;如果他生了小孩,那么这个小孩子是一定有父亲的 到Java代码这样看,如果我们实例化一个子类,必须先构造这个子类,否则是错误的。...Java子类加载的机制是第三个需要理解的地方: 1)相关的的加载机制还是跟  上面第二点相似,只是子类初始化的时候必须先去初始化 2)只有 等Java机制给子类和所有的都分配了内存空间之后...,栈内存里面放上内容 sub; 10)接下来是去执行子类的构造函数,没有,是默认的无参 整个过程就完整了, 上面的例子最主要的就还是:关于构造函数里面执行多态方法的时候,应该注意的地方

2.7K40

Python 子类调用方法详解(单继承、多层继承、多重继承)

测试环境: win7 64位 Python版本:Python 3.3.5 代码实践: 1、子类通过“名”调用的方法 class FatherA: def __init__(self)...__init__(self) # 子类调用的方法:名.方法名称(参数) if __name__ == '__main__': b = SubClassB() 运行结果: >>> ==...(如SubClassB的由FatherA变为FatherD时),必须遍历整个定义,把子类中所有的名全部替换过来 2、子类通过“super”方法调用的方法 场景1、单层继承 class...__init__() # 子类调用的方法:super().方法名称(参数) if __name__ == '__main__': b = SubClassB() class FatherA...__init__() # 子类调用的方法:super(type, obj).方法名称(参数) if __name__ == '__main__': b = SubClassB() 运行结果

2.9K30

Java 基础概念·Java 继承

protected 用于修饰成员,表示继承体系成员对于子类可见,但是这个访问修饰符对于没有意义。 如果子类的方法重写了的方法,那么子类该方法的访问级别不允许低于的访问级别。..., Java 8 之前,它可以看成是一个完全抽象的,也就是说它不能有任何的方法实现。...方法能够同一个或者一个子类中被重载。 无法以返回值类型作为重载函数的区分标准。...关于重载是不是多态有多种论调,有些人认为重载不属于多态的体现,可以参考:Java 多态的实现方式 多态 上面总结了重写与重载的概念与他们之间的区别,这里再说一下多态,以及为什么说重载不属于多态。...上面提到的那种动态绑定认为是动态多态,因为只有在运行期才能知道真正调用的是哪个的方法。还有一种静态多态,一般认为 Java 的函数重载是一种静态多态,因为他需要在编译期决定具体调用哪个方法。

45740

大厂面试题典-注解可以继承吗,show me code?

注解可为Java代码提供元数据,框架也会利用注解暴露功能,比如Spring框架的@Service、@Controller。...和方法上的注解都可正确获得,但子类和方法却不能。即子类子类的方法,无法自动继承方法上的注解。 2 @Inherited元注解实现注解的继承 ? 日志输出 ?...子类可以获得上的注解;子类的foo虽是重写方法,并且注解本身也支持继承,但还是无法获得方法上的注解。 因为@Inherited只能实现上的注解继承。...3.1 AnnotatedElementUtils工具 对@Inherited的支持 遵循get语义的方法将遵循Java的@Inherited注解的约定,除了本地声明的批注(包括自定义组成的注解)优于继承的注解之外...Find V.S Get Semantics 此类的方法使用的搜索算法遵循find或get语义。

3.3K20

反射和泛型的这些坑,你踏空了吗?

案例 期望字段内容变动时记录日志,于是开发同学就想到定义一个泛型,并在定义一个统一的日志记录方法,子类可继承该方法。上线后总出现日志重复记录问题。 ?...虽Parent的value字段正确设置JavaEdge,但setValue调用了两次,计数器而显示2 ?...两次Parent的setValue方法调用,是因为getMethods找到了两个setValue的,分属于/子类。...子类重写方法失败原因 子类未指定String泛型参数,的泛型方法setValue(T value)泛型擦除后是setValue(Object value),于是子类入参String的setValue...这虽能解决重复记录日志,但未解决子类重写方法失败,日志: ? 当其他人使用Child1时还是会发现有俩setValue,让人困惑。

54720

面向对象三大特征之多态

也就是说,定义的属性和方法,子类继承后,可以有不同的数据类型或表现出不同的行为。这可以使得同一个属性或方法,及其各个子类,可能会有不同的表现或含义。...但也有一种特殊的方法重写的情况,属于编译时多态。方法重写时,当对象的引用指向的是当前对象自己所属的对象时,也是编译时多态,因为在编译阶段就能确定执行的方法到底属于哪个对象。...一句话,如果我们在编译时就能确定要执行的方法属于哪个对象、执行的是哪个方法,这就是编译时多态,否则就是运行时多态!4....Java子类可以继承,也可以实现接口。一个子类只能继承一个,但是却可以实现多个接口。这些接口,属于子类的”间接“,你可以理解为是子类的”干爹“或者爷爷等祖辈。...进行向上转型时,引用调用同名的静态方法时,执行的是的方法。这是因为在运行时,虚拟机已经确定了static方法属于哪个。“方法重写”只适用于实例方法,对静态方法无效。

47340

java学习笔记(基础篇)—面向对象编程之封装、继承、多态

因为假如存在这样的两个方法,Java虚拟机在运行时就无法决定到底执行哪个方法。参数签名是指参数的类型、个数和顺序。 6....2)复用的方法(直接调用的方法) 3)重写的方法 实现:class 子类 extends java是单继承,但也不是绝对的单继承,java中有接口,一个接口可以继承多个接口,一个也可以实现多个接口...(参数列表); 4)当一个子类继承了一个后,中所有的字段和方法都被子类继承拥有, 子类可以任意的支配使用,每个子类对象中都拥有了的所有字段。...当构造一个子类的实例对象时,该对象的实例变量包括了子类本身以及的所有实例变量,实例方法也包括了子类的所有实例方法。...子类构造器用来初始化子类中所有的实例变量,而构造器super(实参)用来初始化中所有的实例变量。那么子类实例对象分配的内存区域中包括了子类中所有初始化后的实例变量。

84730

Java基础语法(八)——面向对象

但是IDEA 进行报错,这说明啊,Java当中 使用 extends 只能继承 一个。所以,Java都是单继承,不是多继承。 2.子类会继承的所有 public 的字段和方法....对于的 private 的字段和方法, 子类是无法访问的. 之前我们说过,子类会继承除构造方法外的所有。那么private 修饰的内容呢?...我们还是那句话,子类继承了除构造方法外的全部, private 关键字修饰的内容 在此时只能被当前中进行访问,不能被外访问, 继承的子类只是不能够访问,不是不能被继承 3.子类的实例,...不过这种方式属于是对访问权限的滥用, 还是更希望同学们能写代码的时候认真思考, 该类提供的字段方法到底给 “谁” 使用(是内部自己用, 还是的调用者使用, 还是子类使用)....因此, Java , 调用某个的方法, 究竟执行了哪段代码 (是方法的代码还是子类方法的代码) , 要看究竟这个引用指向的是对象还是子类对象.

28630

JAVA」面向对象三大特征:封装、继承、多态,以高内聚、低耦合为目标

访问权限修饰符应封装的隐藏细节的理念,java提供了访问权限修饰符来控制调用者的访问权限,详情如下: private:属于访问权限,表示私有的,只能在当前访问,使用private修饰的、方法、字段...Java中使用”extends”关键字来表示子类之间的继承关系;Java之间的继承关系只允许单继承,不允许多继承,一个只能有一个直接。...super关键字用于显式调用方法、构造器和字段;可以使用super解决子类隐藏了字段情况; 子类方法,调用被覆盖的方法; 子类构造器,调用构造器。...隐藏本类字段:若本类的局部变量名和字段名相同,此时就是隐藏本类字段,可以通过this访问被隐藏的字段。 无论是this,还是super,都不能和static一起使用。...Object Java除去Object之外的每一个都有一个直接或间接的:Object。也就是说除去Object之外的都是Object的直接子类或间接子类

99540

Java研发面试题『八部曲』——从第一步开始

1、Java变量 Java主要有如下几种类型的变量 局部变量 变量(静态变量)-- 属于 成员变量(非静态变量)-- 属于对象 2、关于枚举 package com.scu.lly; public...(2)要注意的是,对于有继承关系的子类来说,比如 class A extends B,A直接继承拥有了默认的(同一包下)、protected、public的这个字段,可以直接使用该字段,而不用通过再次的实例化或..."对象.字段"的形式访问,因为实例化A的时候B已经实例化好了。...,2和3是实例级别的,所以子类关系,上述的执行顺序为: 静态代码块-->子类静态代码块-->普通代码块-->构造方法-->子类代码块-->子类构造方法; 也就是上到下(子类)先走完...2.png 下面的表列出了Java定义java.lang包的检查性异常。 3.png 其他 1、下面描述属于java虚拟机功能的是?

57000

java的反射

–Class 对象只能由系统建立对象   –一个 JVM 只会有一个Class实例   –每个的实例都会记得自己是由哪个 Class 实例所生成 1: Class...,不管是读值还是写值,都必须先调用setAccessible(true)方法 // 比如Person字段name字段是公用的,age是私有的 field = clazz.getDeclaredField...,继承这个泛型: public class PersonDAO extends DAO { }   的泛型T,就相当于一个参数,当子类继承这个时,就要给这个参数赋值,这里是把...那么首先,定义一个字段,表示T所对应的Class,然后想办法得到这个clazz的值 public class DAO { private Class clazz;...@66588ec0 //this:构造方法的this指的是子类对象,因为此时是PersonDAO对象调用 System.out.println(this.getClass

1.7K40

JVM之类加载阶段详解

final修饰的无法被继承) 3.如果这个不是抽象的话,是否已经实现了或者接口中的所有方法 4.字段,方法是否与产生矛盾(修改了的final字段,…) 2.3字节码验证...但是对于调用方法的对象来说,真正调用哪个方法是根据这个对象的实际类型来决定的(比如子类重写方法,创建一个子类对象,不管静态类型是什么,最终调用的肯定是子类的方法)。...:虚方法表如果子类重写了的方法,则其对应的直接饮用地址就是自己的,如果没有重写就指向对应方法的直接饮用地址,为了更快的匹配子类的虚方法表对应的方法如果没有重写其下标和虚方法表的下标一致...还有一点需要注意:上面所说的子类加载器并不是java上继承的关系,而是其内部的一个字段parent。 那么的加载又会涉及到加载的这些阶段,所以接着往下讲。...如果在解析这个字段(接口)能找到这个字段,那么就直接返回了查找成功代表;如果没有找到,先根据这个/接口 实现/继承 的接口从下往上找这个字段,找到就会返回;如果还是没有找到,而且不是接口的话(接口只能继承

67010

Java面试-面向对象

两种类型的之间执行继承: 超级(超级或基础子类子类或派生) 继承属性的称为“子类”,而继承属性的称为“”。 Q7。Java中继承有哪些不同类型?...Java支持四种继承类型: 单继承:单继承,一个继承另一个属性,即将只有一个和一个子类。...方法重写”子类具有与相同的名称,名称和类型,参数和返回类型的方法。...Java支持吗? 如果子类从多个继承属性,则称为多重继承。Java不允许扩展多个。 多重继承的问题在于,如果多个具有相同的方法名称,则在运行时,编译器将很难从子类决定执行哪个方法。...Java的成分是什么? 组合还是聚集的一种特殊形式,我们可以称其为“死亡”关系。这是强类型的聚合。子对象没有生命周期,如果删除对象,则所有子对象也将被删除。让我们再次以房屋与房间之间的关系为例。

69720

HotSpot虚拟机对象相关内容

第二部分存储的是类型指针,即对象指向它的元数据的指针,虚拟机通过这个指针来确定这个对象属于哪个的实例。如果是数组,还会存储数组长度。...2.实例数据     这部分是对象真正存储的有效信息,也是程序代码中所定义的各种类型的字段内容。无论是从父继承下来的,还是子类定义的,都需要记录起来。...这部分的存储顺序会受到虚拟机分配策略参数和字段Java源码定义顺序的影响。...相同宽度的字段总是被分配到一起,在此条件下定义的变量会出现在子类之前,如果CompactFileds参数值为true,那么子类较窄的变量也可能插入到变量的空隙之中。...1.使用句柄     如果使用句柄的话,java堆中将划分出一块内存来作为句柄池,reference存储的就是对象的句柄地址,而句柄包含了对象实例数据与类型数据各自的具体的地址信息。如下图示。

36840

编译时多态和运行时多态

程序运行时,Java从实例所属的开始寻找匹配的方法执行,如果当前没有匹配的方法,则沿着继承关系逐层向上,依次或各祖先寻找匹配方法,直到Object。...2.将上述例子toString方法改为getName,因为Object中有toString,无法测试Person与Man中所匹配的执行方法。 ...所谓静态,就是在运行时,虚拟机已经认定此方法属于哪个。“重写”只能适用于实例方法,不能用于静态方法。对于静态方法,只能隐藏,重载,继承。 ...子类对于静态方法的隐藏(hide),子类的静态方法完全体现不了多态,就像子类属性隐藏类属性一样,利用引用访问对象的属性或静态方法时,是引用类型决定了实际上访问的是哪个属性,而非当前引用实际代表的是哪个...因此,子类静态方法不能覆盖的静态方法。   属性只能被隐藏,而不能被覆盖;而对于方法来说,方法隐藏只有一种形式,就是子类存在相同的静态方法。

50800

(还在没有对象而发愁吗,new出来)->Java面向对象入门

7.1、继承的语法 程序,如果一个需要继承另一个,此时使用extends关键字 public class 子类名 extends 名{ } 注意:Java只支持单继承,不支持多继承...Java语言的根,任何都是Object的子类,要么是直接子类,要么是间接子类 7.2、子类可以继承到哪些成员 子类继承之后,可以拥有到的某一些成员(字段和方法),根据访问修饰符来判断...他调用的是子类自己的方法还是的方法呢?...如果子类构造方法没有显示调用构造方法时,那么JVM会默认调用的无参构造器 十、修饰符(static、final) 10.1、static修饰符 static修饰的字段和方法都直接属于,不属于该类的对象...(字段和方法属于谁,就让谁来调用) 有static修饰的变量和方法:属于,直接用名调用即可,同一个调用可以省略名不写 没有static修饰的变量和方法:属于对象,必须先创建对象,然后用对象调用

81810

「MoreThanJava」Day 5:面向对象进阶—继承详解

而在官方的 UML-统一建模语言 和对象都用矩形表示,请注意这一点) Java 子类仅从一个继承特征,这被称为 单继承 (与人类不同)。...另外,一个可以是另一个子类,也可以是子类。就像人类一样,一个人是某些人类的孩子,也是其他人类的父母。(但在 Java ,一个孩子只有一个父母) Part 2....如果子类的构造器没有显式地调用的构造器,将自动地调用的无参构造器。如果没有无参数的构造器,并且子类的构造器又没有显式地调用的其他构造器,Java 编译器就会报告一个错误。...正像前面所看到的那样,子类可以增加字段、增加方法或覆盖的方法,不过,继承绝对不会删除任何字段或方法。 Part 3....如果一个子类继承了一个,那么要么继承它的,要么自动继承 Object。最终,所有的都将 Object 作为祖先。 这意味着 Java 的所有都具有一些共同的特征。

50010

Java的继承

一、继承是什么 简介 Java的继承是面向对象编程的一个重要概念。它允许一个(称为子类)继承另一个(称为)的属性和方法。...此时, Animal 这样被继承的, 我们称为 , 基 或 超, 对于像 Cat 和 Bird 这样的, 我们称为 子类, 派生和现实的儿子继承父亲的财产类似, 子类也会继承字段和方法...Java 中一个子类只能继承一个 (而C++/Python等语言支持多继承). 子类会继承的所有 public 的字段和方法....对于的 private 的字段和方法, 子类是无法访问的. 子类的实例, 也包含着的实例. 可以使用 super 关键字得到实例的引用....不过这种方式属于是对访问权限的滥用, 还是更希望读者们能写代码的时候认真思考, 该类提供的字段方法到底给 “谁” 使用(是内部自己用, 还是的调用者使用, 还是子类使用).

5310

Java 编译时多态和运行时多态

程序运行时,Java从实例所属的开始寻找匹配的方法执行,如果当前没有匹配的方法,则沿着继承关系逐层向上,依次或各祖先寻找匹配方法,直到Object。...因此,对象只能执行那些声明、被子类覆盖了的子类方法,如toString(),不能执行子类增加的成员方法。...所谓静态,就是在运行时,虚拟机已经认定此方法属于哪个。“重写”只能适用于实例方法,不能用于静态方法。对于静态方法,只能隐藏,重载,继承。...子类对于静态方法的隐藏(hide),子类的静态方法完全体现不了多态,就像子类属性隐藏类属性一样,利用引用访问对象的属性或静态方法时,是引用类型决定了实际上访问的是哪个属性,而非当前引用实际代表的是哪个...因此,子类静态方法不能覆盖的静态方法。 属性只能被隐藏,而不能被覆盖;而对于方法来说,方法隐藏只有一种形式,就是子类存在相同的静态方法。

55820
领券