zoukankan      html  css  js  c++  java
  • Java重载Java构造器

    1)如果java没有写构造器,编译器会调用默认的构造器。如果写了一个构造器,编译环境便不会调用默认的构造器

    2)构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用)不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。 

    3)构造器没有返回值,也不需要void。 

    4)This用法,方法中This,指向的是执行方法的类的实例。构造器的this指向同一个类中,不同参数列表的另外一个构造器,需在在第一行。

     

    public class Platypus { 

    String name; 

    Platypus(String input) { 

    name = input; 

    Platypus() { 

    this("John/Mary Doe"); 

     

    5super 在构造器和一般方法中,都用关键字super指向超类,但是用的方法不一样。一般方法用这个关键字去执行被重载的超类中的方法。看下面的例子: 

    class Mammal { 

    void getBirthInfo() { 

    System.out.println("born alive."); 

     

    class Platypus extends Mammal { 

    void getBirthInfo() { 

    System.out.println("hatch from eggs"); 

    System.out.print("a mammal normally is "); 

    super.getBirthInfo(); 

    } } 

    而在构造器中则表示super去调用超类中的构造器。

    public class SuperClassDemo { 

    SuperClassDemo() {} 

     

    class Child extends SuperClassDemo { 

    Child() { 

    super(); 

     

     

    总结:

    主题

    构造器

    方法

    功能

    建立一个类的实例

    java功能语句

    修饰

    不能用bstract, final, native,static, or synchronized

    返回类型

    没有返回值,没有void

    有返回值,或者void

    命名

    和类名相同;通常为名词,大写开头

    通常代表一个动词的意思,小写开头

    this

    指向同一个类中另外一个构造器,在第一行

    指向当前类的一个实例,不能用于静态方法

    super

    调用父类的构造器,在第一行

    调用父类中一个重载的方法

    继承

    构造器不能被继承

    方法可以被继承

    编译器自动加入一个缺省的构造器

    自动加入(如果没有)

    不支持

    编译器自动加入一个缺省的调用到超类的构造器

    自动加入(如果没有)

    不支持

  • 相关阅读:
    ubuntu卸载vsftpd出错
    Eclipse: the import java.util cannot be resolved
    C# webBrowser 获取元素class属性值
    获取 user-agents
    Python获取当前年月日
    使用pip安装Scrapy出错
    使用pip安装Scrapy出错
    VMware全屏时, 隐藏上方工具栏横条
    HDFS 常用命令
    简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
  • 原文地址:https://www.cnblogs.com/richelle009/p/4054126.html
Copyright © 2011-2022 走看看