`
zy19880423
  • 浏览: 28703 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

java子类与父类方法调用

    博客分类:
  • Java
阅读更多

1.class Parent {
  private   void method1(){
   System.out.println("Parent's method1()");
  }
  public void method2(){
   System.out.println("Parent's method2()");
   method1();
  }
 }
 public class Child extends Parent{
  public void method1(){
   System.out.println("Child's method1()");
  }
  public static void main(String[] args) {
   Parent p=new Child();
   p.method2();
  }
 }

输出:Parent's method2()   

      Parent's method1()

2.class Parent {
  void method1(){
   System.out.println("Parent's method1()");
  }
  public void method2(){
   System.out.println("Parent's method2()");
   method1();
  }
 }
 public class Child extends Parent{
  public void method1(){
   System.out.println("Child's method1()");
  }
  public static void main(String[] args) {
   Parent p=new Child();
   p.method2();
  }
 }

输出:Parent's method2()
       Child's method1()

分析:1.多态new的对象,调用的方法是父类中一定存在的,否则编译不通过.如果调用的方法不是私有的,则会先去到子类中,查找该方法有没有被子类覆盖,如有,执行子类方法;如无,执行父类方法,即使子类中存在参数类型最匹配的方法也不会被执行.

2.private是私有的,其他类是不能访问的,子类也不可以访问,所以你可以重新实现父类的该方法,不会有冲突,但是你重新实现的方法,不叫重写也不叫重载,是一个该子类新增的方法,和子类的一般扩展方法一样.所以例1中父类方法method1是private的,不能被子类覆盖,所以调用的是自身的方法

分享到:
评论

相关推荐

    java 子类对象赋值给父类对象的使用

    2. **构造器与初始化**:子类对象在创建时会先调用父类的构造器,确保父类的状态得到正确初始化,然后执行子类自己的构造逻辑。 3. **变量隐藏**:如果子类和父类有同名的实例变量,子类变量会“隐藏”父类变量。...

    Java的子类调用父类的构造方法.pdf

    Java的子类调用父类的构造方法.pdf

    java中的继承(子类调用父类构造方法还不懂).doc

    Java 中的继承(子类调用父类构造方法还不懂) Java 中的继承是指一个类可以继承另一个类的属性和方法,这样可以实现代码的复用和提高开发效率。在 Java 中,继承使用关键字 `extends` 来实现。 Java 中继承的注意...

    Java中父类怎么调用子类的方法

    Java中父类调用子类的方法知识点总结 Java中父类调用子类的方法是面向对象编程中一个常见的问题,了解如何在Java中实现父类调用子类的方法对于编程开发者来说非常重要。本文将通过示例代码和详细的解释,介绍三种...

    java子类调用父类的方法中包含子类重写的实例方法

    Java子类调用父类的方法中包含子类重写的实例方法 Java 子类调用父类的方法中包含子类重写的实例方法是 Java 编程语言中一个重要的概念。下面我们将详细介绍这个概念,包括相关的知识点和示例代码。 子类调用父类...

    Java编程关于子类重写父类方法问题的理解

    Java编程关于子类重写父类方法问题的理解 Java编程中,子类重写父类方法是非常重要的概念之一。子类重新实现父类的方法称为重写,重写时可以修改访问权限修饰符和返回值,但方法名和参数类型及个数不能修改。只有...

    java子类继承父类实例-披萨的选择实现代码

    Java子类继承父类实例-披萨的选择实现代码 本篇文章主要介绍了Java子类继承父类实例-披萨的选择实现代码,通过编写程序实现比萨...例如,我们可以理解Java子类重写父类方法的问题,以便更好地实现代码的重用和扩展。

    java反射获取所有属性,获取所有get方法,包括子类父类

    总结,Java反射机制为我们提供了强大的动态性,能够方便地获取和操作类的属性和方法,包括私有成员和子类父类中的成员。通过熟练掌握反射技术,开发者可以实现更灵活、更动态的代码,但也需要谨慎使用,以避免潜在的...

    再次详细说明在继承中的程序执行顺序,子类与父类到底哪个先执行

    在Java中,如果子类没有显式调用父类的构造器,编译器会自动添加一个默认的`super()`调用,这将调用父类的无参构造器。如果父类有带参数的构造器,子类必须显式调用。 2. **初始化子类**: - 父类的构造器执行完毕...

    JAVA 子类继承父类的范例 可直接运行

    子类通过重写父类的方法,可以提供特定于子类的行为,也可以使用`super`关键字调用父类的版本。 关于继承的更多细节,Java语言还支持单继承和多层继承,即一个类只能有一个直接父类,但通过继承链可以间接地继承多...

    java反射操作父类所有属性和方法

    ### Java反射操作父类所有属性和方法 #### 一、引言 在Java编程语言中,反射(Reflection)是一项强大的特性,它允许程序在运行时动态地获取类的信息,并能够直接操作这些信息。通过反射,我们可以获取类的字段、...

    将子类引用赋给父类对象时,java虚拟主机并没有将那些非继承成员丢弃

    即使父类引用没有直接指向子类的特有方法,但这些方法仍然存在于子类的元数据中,因此,如果通过子类引用调用,仍然可以访问到这些非继承成员。 这种机制在设计上保证了多态性的灵活性,同时又不会牺牲子类的特有...

    在父类获取子类属性

    在`main`方法中,我们可以通过直接访问和调用方法来获取子类的属性。 **标签:“源码”与“工具”:** 在实际开发中,理解源码可以帮助我们更好地掌握类库的工作原理,从而优化代码和解决问题。对于“工具”,可能...

    Java中关于子类覆盖父类的抛出异常问题

    在Java编程语言中,子类覆盖父类的方法时,关于异常处理有特定的规定。这个问题的核心是子类在重写父类方法时抛出异常的规则。通常,我们说子类覆盖父类方法时,抛出的异常不能比父类更"宽泛",这里的"宽泛"指的是...

    C++/JAVA/C#子类调用父类函数情况总结

    - **base.functionName(args)**:与Java中的`super`类似,C#使用`base`关键字来调用父类的非覆盖方法。 这些规则适用于所有情况,无论是在实例化子类对象时还是在子类的其他方法中。注意,子类可以访问父类的公有...

    论JAVA继承机制中父类与子类的关系

    文章围绕子类继承父类成员的过程、成员变量及方法的赋值、重写、覆盖等问题展开讨论,旨在帮助读者更好地理解Java继承中的重点与难点。 #### 关键词 - 继承机制 - 父类 - 子类 #### 一、超类的属性或方法在继承...

    子类调用抽象父类.zip

    6. **子类属性与方法**:子类可以有自己的属性和方法,也可以调用父类方法。 7. **构造函数调用**:子类可以使用`super`调用父类构造器。 以上就是关于“子类调用抽象父类”这一主题的主要内容,理解并熟练运用这些...

    java 子类构造方法

    总结,Java子类构造方法的使用涉及到继承、初始化、方法调用等多个概念。正确理解和运用这些知识点对于编写健壮的Java程序至关重要。通过熟练掌握这些内容,开发者可以更好地设计和实现类的层次结构,提高代码的复用...

    Java、C++中子类对父类函数覆盖的可访问性缩小的区别介绍

    在 Java 和 C++ 中,这个过程通常是通过定义与父类相同名称和参数列表的方法来完成的。 在 Java 中,当子类覆盖父类的函数时,如果试图降低函数的可访问性,如将 public 更改为 private 或 protected,编译器会报错...

Global site tag (gtag.js) - Google Analytics