精华内容
下载资源
问答
  • java调用父类构造器

    千次阅读 2014-11-15 21:35:59
    子类不会获得父类的构造器,但子类构造器里可以调用父类构造器的初始化代码

    子类不会获得父类的构造器,但子类构造器里可以调用父类构造器的初始化代码。

    class Creature
    {
    	public Creature()
    	{
    		System.out.println("Creature无参数的构造器");
    	}
    }
    class Animal extends Creature
    {
    	public Animal(String name)
    	{
    		System.out.println("Animal带一个参数的构造器,"+"该动物的name为"+name);
    	}
    	public Animal(String name,int age)
    	{
    		//使用this调用一个重载的构造器
    		this(name);
    		System.out.println("Animal带两个参数的构造器,"+"其age为"+age);
    	}
    }
    
    public class Wolf extends Animal {
    	public Wolf()
    	{
    		//显式调用父类有两个参数的构造器
    		super("灰太狼",3);
    		System.out.println("Wolf无参数的构造器");
    	}
    	public static void main(String[] args)
    	{
    		new Wolf();
    	}
    }
    
    执行结果如下:

    Creature无参数的构造器
    Animal带一个参数的构造器,该动物的name为灰太狼
    Animal带两个参数的构造器,其age为3
    Wolf无参数的构造器


    子类构造器调用父类构造器分为如下几种情况。

    >子类构造器执行体的第一行使用super显式调用父类构造器,系统将根据super调用里传入实例参数列表调用父类对象的构造器

    >子类构造器执行体的第一行使用this显式调用类中重载的构造器,系统将根据this调用里传入实例参数列表调本类中另一个构造器。执行本类中另一个构造器时即会调用父类构造器。

    >子类构造器执行体中既没有super调用,也没有this调用,系统将会在执行子类构造器之前,隐式调用父类无参数的构造器。

    不管上面那种情况,当调用子类构造器来初始化子类对象时,父类构造器总是会在之类构造器之前执行。



    展开全文
  • 初学Java,调用父类方法(十一).pdf
  • java在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗? 如图:父类有一个私有方法f(),然后再父类中创建一个父类型的子类对象student,然后用子类对象student调用f()方法。 ![图片说明]...
  • 在本篇文章里小编给大家整理了关于java子类调用父类方法中包含子类重写的实例方法以及相关知识点,需要的朋友们可以学习下。
  • java中子类重写父类方法调用父类同名方法: 在学装饰者模式的时候发现子类重写父类方法调用父类同名方法: public abstract class Beverage { String description = "Unknown Beverage"; public String ...

    java中子类重写父类方法时调用父类同名方法
    在学装饰者模式的时候发现子类重写父类方法时调用父类同名方法:

    public abstract class Beverage {
    	String description = "Unknown Beverage";
    
    	public String getDescription() {
    		return description;
    	}
    	public abstract double cost();
    }
    
    public class DecoratoredbinandMilk extends Beverage {
    	
    		public DecoratoredbinandMilk(Beverage beverage) {
    			this.beverage = beverage;
    		}
    //这个位置同名调用同名
    		public String getDescription() {
    			return beverage.getDescription() + ", 红豆"+ ", 牛奶";
    		}
    
    		public double cost() {
    			return 2+3+beverage.cost();
    		}
    }
    
    展开全文
  • 父类调用子类的方法吗?答:能。 怎么做?● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:[java] view plain ...

    父类能调用子类的方法吗?

    答:能。

     

    怎么做?

    ● 把子类传递到父类的有参构造中,然后调用。
    ● 使用反射的方式调用,你使用了反射还有谁不能调用的?!
    ● 父类调用子类的静态方法。

    案例展示:

    [java]  view plain  copy
    1. package com.ywq;  
    2.   
    3.   
    4.   
    5. public class Test2{   
    6.     public static void main(String[] args)  
    7.     {  
    8.         Son son = new Son();  
    9.         Father father=new Father(son);  
    10.         father.fun1();  
    11.         father.fun4();  
    12.     }     
    13. }  
    14. class Father{  
    15.     public Son son;  
    16.     public Father(Son son){       
    17.         this.son=son;  
    18.     }     
    19.     public Father() {  
    20.           
    21.     }  
    22.   
    23.     public void fun4(){  
    24.         //方法3:使用反射的方式调用子类方法  
    25.         try {  
    26.             Class cls=Class.forName("com.ywq.Son");  
    27.             Son son=(Son) cls.newInstance();  
    28.             son.fun2();  
    29.         } catch (Exception e) {  
    30.           
    31.             e.printStackTrace();  
    32.         }  
    33.     }  
    34.     public void fun1(){  
    35.         //方法1:把子类传递到父类的有参构造函数中,然后调用。  
    36.         System.out.println("我是父类的方法");  
    37.         son.fun2();  
    38.           
    39.         //方法2:父类调用子类的静态方法。  
    40.         Son.fun3();  
    41.     }         
    42. }  
    43.   
    44. class Son extends Father{  
    45.       
    46.     public static void fun3(){  
    47.         System.out.println("我是子类的静态方法");  
    48.     }  
    49.     public void fun2(){  
    50.         System.out.println("我是子类的方法");  
    51.           
    52.     }  
    53.       
    54. }  


     

    这三种都是父类直接调用子类的方法,

          好用不?好用!

          解决问题了吗?解决了!

          项目中允许使用不?不允许!

    我就一直没有搞懂为什么要用父类调用子类的方法。如果一定要调用子类,那为什么要继承它呢?搞不懂。其实这个问题可以换个角度去理解,父类建立框架,子类在重写了父类部分的方法后,再调用从父类继承的方法,产生不同的结果(而这正是模板方法模式)。这是不是也可以理解为父类调用了子类的方法呢?你修改了子类,影响了父类行为的结果,曲线救国的方式实现了父类依赖子类的场景,模板方法模式就是这种效果。

    展开全文
  • protected void setActionsActivated(boolean state) { Method method= null; try { method= AbstractTextEditor.class.getDeclaredMethod("setActionActivation", new Class[] { boolean.class...

    protected void setActionsActivated(boolean state) {

    Method method= null;

    try {

    method= AbstractTextEditor.class.getDeclaredMethod("setActionActivation", new Class[] { boolean.class }); //$NON-NLS-1$

    } catch (SecurityException ex) {

    JavaPlugin.log(ex);

    } catch (NoSuchMethodException ex) {

    JavaPlugin.log(ex);

    }

    Assert.isNotNull(method);

    method.setAccessible(true);

    try {

    method.invoke(this, new Object[] { new Boolean(state) });

    } catch (IllegalArgumentException ex) {

    JavaPlugin.log(ex);

    } catch (InvocationTargetException ex) {

    JavaPlugin.log(ex);

    } catch (IllegalAccessException ex) {

    JavaPlugin.log(ex);

    }

    }

    展开全文
  • 当一个类继承于另一个类,子类中没有父类方法时,用子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找。 当一个方法只在父类中定义时,调用方法时会使用父类中的属性。 如果该...
  • 简单说,如果子类继承父类自己写构造方法中没有显示调用父类有参构造方法,则会先隐式调用父类无参构造方法,若是先显示(super(300))调用了父类有参构造方法,则父类的无参构造方法就不会再被调用。 ...
  • java子类如何调用父类变量和方法

    万次阅读 2016-09-21 16:56:05
    子类直接调用父类的public方法,可以把公用类放到父类中,这样子类中无需再定义一遍, testSon.fun3(); } // 从结果中可以看出:调用某个类的构造方法的时候总是会先执行父类的非静态代码块,然后执行父类的构造方法...
  • 本篇文章介绍了,Java中子类调用父类构造方法的问题分析。需要的朋友参考下
  • 初学Java,调用父类方法(十一)

    千次阅读 2012-02-06 10:22:37
    Java的继承关键字是extends,而C#是一个冒点:他们子类调用父类的关键字也不同,Java 子类调父类方法是''super.父类方法名称'',C#是''base.父类方法名称''public void callOverrideMethod() { //在子类中通过super ...
  • Java子类调用父类的构造方法

    千次阅读 2020-05-20 20:44:47
    一、自动调用父类无参构造方法 //这是父类 public class SuperClass { //父类无参构造方法 public SuperClass(){ System.out.println("父类无参构造方法"); } //父类带参构造方法 public SuperClass(String ...
  • java子类父类方法调用

    千次阅读 2018-06-10 20:16:44
    如果子类重写了父类的方法,会调用子类的方法,若未重写则调用父类方法。package com.test; /** * @author Administrator * @date 2018/6/9 */ public class TestParent { public void testA()...
  • Java_24 显式调用父类的构造方法_父类中有多个调用方法_父类(01) //可以在子类中指定调用父类中的哪个构造方法,在父类中有多个构造方法的时候,就特别有用. //给父类添加多个构造方法 package my; public ...
  • 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另一个重载构造方法用this(参数列表) 子类构造方法调用父类构造方法用super(参数列表) 子类调用父类的构造方法时: super必须...
  • Java子类调用父类构造方法

    万次阅读 多人点赞 2017-09-29 14:49:15
    Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?   答案如下:   当你new一个子类对象的时候,必须首先要new一个父类...
  • Java 程序在执行子类的构造方法之前,如果没有用 super() 来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super() 来...
  • java子类调用父类构造器函数

    万次阅读 多人点赞 2019-06-25 15:52:54
    java子类调用父类构造器函数详解
  • 主要介绍了Java父类调用子类的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java中子类调用父类方法

    千次阅读 2019-05-11 10:06:20
    当一个方法只在父类中定义时,调用方法时会使用父类中的属性。 如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找(使用子类的属性),再在父类中查找(使用父类的属性)。 package Temp...
  • 主要介绍了Java super关键字调用父类过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 代码1: 打印结果: 代码2: 运行结果: ...代码1中super是父类自己调用自己的add()...代码2中this是子类去调用父类继承下来的add()方法,但是为什么还能在add()方法调用父类的私有的del()方法? 谁能解释...
  • 调用父类我们都很熟悉,那调用父类的父类呢? 代码如下: public class 测试{ public static void main(String[] args) { son a=new son(); a.inNumber(0);/*调用grandfather类中inNumber方法向number赋值*/ ...
  • Java_24 显式调用父类的构造方法_父类中有多个调用方法_子类(02) //可以在子类中指定调用父类中的哪个构造方法,在父类中有多个构造方法的时候,就特别有用. //在子类中指定调用父类中的哪个构造方法,使用super()...
  • ![图片说明](https://img-ask.csdn.net/upload/201712/05/1512488608_850150.png) ![图片说明]...为什么子类方法也被调用了 而且还是优先父类方法调用的!!!
  • Java的重写与调用父类方法问题

    千次阅读 2017-05-30 19:22:28
    当我们重写了父类方法后,又想同时调用父类的方法,而不是已经重写了的方法,可以这样: public class main{ static Scanner cin = new Scanner(System.in); public static void main(String[] args) { Sun ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 407,975
精华内容 163,190
关键字:

java如何调用父类的父类方法

java 订阅