精华内容
下载资源
问答
  • 展开全部先小小纠正一下,java里面...首先,任何类都构造方法,难怕是你不写,也会默认你一个有无参构造方法。,所以你的A里面就会一个叫A()的构造方法。当你new A()时,默认你一个有无参构造方法A()的方法...

    展开全部

    先小小纠正一下,java里面一般不叫函数,32313133353236313431303231363533e4b893e5b19e31333365656636叫方法,这是Java的一个小习惯。

    你这个问题原因很简单。

    首先,任何类都有构造方法,难怕是你不写,也会默认你有一个有无参构造方法。,所以你的A里面就会有一个叫A()的构造方法。

    当你new A()时,默认你有一个有无参构造方法A()的方法里的第一句,会自动加上一个super();的方法,这句就是调用父类构造方法的意思,这是java规定的规则。

    你可以尝试一下,在A里写一个构造方法:

    A(){

    super();   //这个一定要放在第一句

    System.out..XX;

    }

    这与你不写super()这句效果是一样的,因如果没写,java会默认在第一句加上super。

    1.构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值;

    2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的;

    3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;

    4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点;

    5.构造函数有回滚的效果,构造函数抛出异常时,构造的是一个不完整对象,会回滚,将此不完整对象的成员释放(c++)

    6.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。[1]

    7.在Python中构造函数必须通过重写__init__方法实现

    展开全文
  • Java 中父类怎么调用子类的方法

    万次阅读 2016-10-24 22:41:38
    ● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?! ● 父类调用子类的静态方法。 案例展示: package com.ywq; public class Test2{ public static ...

     

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

    答:能。

    怎么做?

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

    案例展示:

    package com.ywq;
    
    
    
    public class Test2{	
    	public static void main(String[] args)
    	{
    		Son son = new Son();
    		Father father=new Father(son);
    		father.fun1();
    		father.fun4();
    	}	
    }
    class Father{
    	public Son son;
    	public Father(Son son){		
    		this.son=son;
    	}	
    	public Father() {
    		
    	}
    
    	public void fun4(){
    		//方法3:使用反射的方式调用子类方法
    		try {
    			Class cls=Class.forName("com.ywq.Son");
    			Son son=(Son) cls.newInstance();
    			son.fun2();
    		} catch (Exception e) {
    		
    			e.printStackTrace();
    		}
    	}
    	public void fun1(){
    		//方法1:把子类传递到父类的有参构造函数中,然后调用。
    		System.out.println("我是父类的方法");
    		son.fun2();
    		
    		//方法2:父类调用子类的静态方法。
    		Son.fun3();
    	}		
    }
    
    class Son extends Father{
    	
    	public static void fun3(){
    		System.out.println("我是子类的静态方法");
    	}
    	public void fun2(){
    		System.out.println("我是子类的方法");
    		
    	}
    	
    }

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

          好用不?好用!

          解决问题了吗?解决了!

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

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

    读者可查阅:

            Java设计模式—模板方法模式&建造者模式

     

    注:文字部分摘录至设计模式之禅,案例展现为本人总结,错误或者不足之处请指出。

     

    展开全文
  • 把子类传递到父类的有参构造中,然后调用。使用反射的方式调用,你使用了反射还有谁不能调用的?!父类调用子类的静态方法。案例展示:package com.ywq;public class Test2{public static void main(String[] args){...

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

    答:能。

    怎么做?

    把子类传递到父类的有参构造中,然后调用。

    使用反射的方式调用,你使用了反射还有谁不能调用的?!

    父类调用子类的静态方法。

    案例展示:

    package com.ywq;

    public class Test2{

    public static void main(String[] args)

    {

    Son son = new Son();

    Father father=new Father(son);

    father.fun1();

    father.fun4();

    }

    }

    class Father{

    public Son son;

    public Father(Son son){

    this.son=son;

    }

    public Father() {

    }

    public void fun4(){

    //方法3:使用反射的方式调用子类方法

    try {

    Class cls=Class.forName("com.ywq.Son");

    Son son=(Son) cls.newInstance();

    son.fun2();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    public void fun1(){

    //方法1:把子类传递到父类的有参构造函数中,然后调用。

    System.out.println("我是父类的方法");

    son.fun2();

    //方法2:父类调用子类的静态方法。

    Son.fun3();

    }

    }

    class Son extends Father{

    public static void fun3(){

    System.out.println("我是子类的静态方法");

    }

    public void fun2(){

    System.out.println("我是子类的方法");

    }

    }

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

    好用不?好用!

    解决问题了吗?解决了!

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

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

    以上所述是小编给大家介绍的Java父类调用子类的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    展开全文
  • ● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:[java] view plain copypackage com.ywq; public class Test2{...

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

    答:能。

     

    怎么做?

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

    案例展示:

    [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. }  


     

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

          好用不?好用!

          解决问题了吗?解决了!

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

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

    展开全文
  • 步骤1:什么是构造方法步骤2:隐式的构造方法步骤3:如果提供了一个有参构造方法步骤4:构造方法的重载步骤5:练习-构造方法步骤6:答案-构造方法 步骤1:什么是构造方法 方法名和类名一样(包括大小写)没有返回类型 ...
  • JAVA中构造方法

    2019-07-30 14:27:51
    我们在使用类的时候,有...3.定义的有参构造方法,可以在new对象的同时给属性赋值 怎么定义构造方法 public 构造方法名(参数){ } 注意: 1.构造方法没有返回值类型 2.构造方法名必须和该类的...
  • Java构造方法详解

    2019-08-01 19:59:00
    构造方法 以前说过对象也叫类的实例,使用关键字new 构造器(…)的方式,构造器又叫构造方法。 ...3.定义的有参构造方法,可以在new对象的同时给属性赋值(简版setget方法,) 怎么定义构造方...
  • 父类能调用子类的方法吗?...● 把子类传递到父类的有参构造中,然后调用。 ● 使用反射的方式调用,你使用了反射还有谁不能调用的?! ● 父类调用子类的静态方法。 package study; /** * Cr
  • 这个,怎么说都可以,其主要作用是初始化,也可以说了是c++提供的一种初始化的格式方法吧,我没觉得他多么神奇,牛逼。 具体来说就是 没有返回值,(是没有,不是void),函数名和类名相同,在创建对象,分配内存的...
  • 步骤3:如果提供了一个有参构造方法 步骤4:构造方法的重载 步骤5:练习-构造方法 步骤6:答案-构造方法 步骤 1 : 什么是构造方法 方法名和类名一样(包括大小写) 没有返回类型 实例化一个对象的时候,必然...
  • 由于最近写的代码 发现有点异常,值怎么是错误的呢?明明修改了的。 经过调试,发现原来 是构造函数里面的问题。 搜索:c++ 一个构造函数 调用 另一个 构造函数 ...new(this)构造函数(不同的...
  • 问题:在使用远程过程调用,发现调用方法有明显的返回值,但是怎么调试都不能返回到最初调用方法处,如下:这个问题整整困扰了我两天。气死我了。最后发现在使用远程调用的返回值处,忘记加无参构造函数了(天坑...
  • * 定义有参构造之后,如果想使用无参构造(即你在B包里去new一个A类的对象时), * 需要显示的定义一个无参构造才能使用new * * 那么怎么才是定义一个非显示出来的无参构造呢? * 默认不写显示的无参构造就是非...
  • 通过malloc分配的对象不会调用构造函数,用new和(类 对象名这种方法)可以调用构造函数 **错误结论:**默认情况下,编译器会为每一个类生成空的无构造函数 正确理解:在某些特定的情况下,编译器才会为类生成空...
  • 想写一个数据库连接工具[DataGrip]连接Redis的功能,所以要知道它调用...动态字节码生成无参构造函数的类,骗过CGLIB检测 自写类加载器加载类 重写CGLIB代理类,不用通过构造函数,通过实体直接生成代理类 效果图,只对Dr.
  • c++构造函数

    2018-05-18 18:06:31
    其实你在写这句话:Person person=new Person()的时候就调用构造方法构造方法有分为无和带,具体选择哪种构造方法,可视情况而定普通方法归对象所有,对象由构造函数建立:例子:class per...
  • 首先还是想想Java中的构造方法,有无参构造方法和有参构造方法,在Java中也是初始化数据或者创建对象用来调用类中已经封装的public的方法,看看C++中的构造函数是怎么回事,是不是和Java的构造方法一样的。...
  • 调用父类的默认构造函数,那么如果父类中并没有默认的构造(只有有参的情况下),父类中部分特性需要先初始化怎么办呢,我们会在父类中提供有参构造函数,但是在创建子类对象时会报错父类没有默认的构造函数,那么该...
  • 2.枚举用法:枚举怎么使用???枚举哪些特性??? 完成:第一遍 跟汤老师学Java笔记:枚举类型 完成:第一遍 1.枚举怎么使用?...在内部创建枚举对象时本质上就是在调用构造方法,如果调用的是无参构造方法
  • 初始化所有属性,除了学校的有参构造方法 4、创建两个普通成员方法: 静态有参方法,分数平均值(注 意整数相除还是整数,但 平均值可能是实数,需要处理这个问题) 非静态无参方法,自我介绍(模板: 大家好,我是...
  • 生日birthday,GregorianCalender类型 那生日这个变量怎么有参构造函数里传参啊。一直出错啊不知道怎么办。谢谢。 ![图片说明](https://img-ask.csdn.net/upload/201602/16/1455609460_625542.jpg) ![图片说明]...
  • 继承问答题:1、创建对象一定会调用类里边的构造方法你知不知? yes2、类里边能有多个构造方法你知不知道?...6、怎么通过子类调用父类有参构造方法?Student s1 = new Student(2,"张三");Student ...
  • public People(String name1,boolean sex1,int age1) { //有参构造方法 this.name = name1; this.sex = sex1; this.age = age1; } public void show() { System.out.println("***********...
  • 这里介绍第三种方法,就是在调用有参构造的时候,就进行参数化列表初始化。本篇第二个知识点来学习下,一个类对象作为成员,那么里面的类初始化和外层这个类初始化的先后顺序,调用析构函数的先后顺序是怎么...

空空如也

空空如也

1 2 3 4
收藏数 63
精华内容 25
关键字:

有参构造方法怎么调用