zoukankan      html  css  js  c++  java
  • super的使用方法与使用范围

               如果你了解,用this是调用一个类里面的变量或者对象方法。那么super你可以理解为调用多态或者继承类中的构造方法和对象方法。在super调用构造方法时,只能调用带参的构造方法,这也是唯一调用其他类里面的构造方法的显性调用。不带参的父类构造方法可以在执行实例化子类时直接被隐性调用。

    例子1:

    class cam0  
    {  
        double size=10;  
        void printsize()  
        {  
            System.out.println(size);  
        }  
    }  
    class cam1 extends cam0  
    {  
        double size=20;  
        void printsize()  
        {  
            System.out.println(size);  
            System.out.println(super.size);  
            super.printsize();  
        }  
    }  
    public class cam2  
    {  
        public static void main(String args[])  
        {  
            cam1 m=new cam1();  
            m.printsize();  
        }  
    }  
    结果:

    输出为

    20.0

    10.0

    10.0

    super调用m的父类cam0的成员和方法


    super可以调用当前对象的父类对象的构造函数

    注意: 子类调用父类的构造方法时,super语句必须是子类构造方法的第一句


    例子2:

    [java] view plain copy 
    class cam0  
    {  
        public cam0(int a,int b)  
        {  
            System.out.println("CS");  
        }  
    }  
    class cam1 extends cam0  
    {  
        public cam1()  
        {  
            super(1,1);  
            System.out.println("bbb");  
        }  
        public cam1(int a)  
        {  
            super(1,1);  
            System.out.println("ccc");  
        }  
    }  
    public class cam2  
    {  
        public static void main(String args[])  
        {  
            cam1 a=new cam1();  
            cam1 b=new cam1(1);  
        }  
    }  

    输出为

    CS

    bbb

    CS

    ccc

    对象a,b分别调用了父类cam0的构造函数

     

    super可以把当前对象的父类对象的引用作为参数传递给其他方法

    这个用法和this把当前对象的引用作为参数传递给其他方法相似,这里就不赘述了




  • 相关阅读:
    如何通过关键词匹配统计其出现的频率
    好玩的SQL
    如何用Dummy实例执行数据库的还原和恢复
    如何查找特定目录下最大的文件及文件夹
    《Administrator's Guide》之Managing Memory
    Oracle如何实现从特定组合中随机读取值
    如何用分析函数找出EMP表中每个部门工资最高的员工
    Oracle之DBMS_RANDOM包详解
    RAC碎碎念
    如何利用Direct NFS克隆数据库
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/9708671.html
Copyright © 2011-2022 走看看