JAVA构造方法,继承关系和SUPER关键字

SUPER可调用父类的构造方法,但要注意默认调用和参数调用。

同时,在继承类时,可以用SUPER调用其它非构造方法哟。

class Test extends Object{
    public Test(){
        System.out.println("Test1 First thing");
    }
    public Test(String welcome){
        System.out.println("Test1 " + welcome);
    }
    protected void doSomething(){
        System.out.println("Test1 doSomething");
    }
    protected Test doit(){
        return new Test();
    }
}

class Test2 extends Test{
    public Test2(){
        super("welcome string");
        super.doSomething();
    }
    public Test2(String welcom){
        //super();
        super("welcome string");
        super.doSomething();
        System.out.println("Test2 " + welcom);
    }
    public void doSomethingnew(){
        System.out.println("Test2 doSomethingnew");
    }
    public void doSomething(){
        System.out.println("Test2 doSomething");
    }
    protected Test2 doit(){
        return new Test2();
    }
}
class HelloJava{
    public static void main(String[] args){
        Test test1 = new Test();
        Test2 test2 = new Test2("hello");
        test1.doSomething();
        test2.doSomething();
        test2.doSomethingnew();

    }
}

时间: 2024-08-03 10:02:17

JAVA构造方法,继承关系和SUPER关键字的相关文章

Super关键字

Super关键字:在对象内部使用,代表父类对象访问父类的属性super.age访问父类方法super.eat();子类构造过程中必须调用父类的构造方法:隐示super();显示调用父类构造方法,必须放在构造方法的第一行 当子类构造方法中既没有显示调用父类的构造方法,父类又没有无参的构造方法则编译出错 super关键字的应用: 1.子类的构造过程中必须调用其父类的构造方法2.如果子类的构造方法没有显示调用父类的构造方法,则系统会默认调用父类的无参构造方法.3.如果显示的调用构造方法,必须在子类的构

JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做> 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供

JAVA学习(七):方法重载与方法重写、this关键字和super关键字

方法重载与方法重写.this关键字和super关键字 1.方法重载 重载能够使具有相同名称但不同数目和类型参数的类传递给方法. 注: 一是重载方法的参数列表必须与被重载的方法不同,并且这种不同必须足以清楚地确定要调用哪一个方法: 二是重载方法的返回值类型可以与被重载的方法相同,也可以不同,但是只有返回值类型不同不能表示为重载. 例如,最常用的println()方法在JDK的java.io.PrintStream中定义了十几种形式的重载,常用格式如下: public void println(in

Android中比较常见的Java super关键字_java

super在android中比较常见,没有java基础也并不理解,所以空出时间学习了一下. 在Java类中使用super来引用基类的成分,比较简单,示例如下: class FatherClass{ public int value; public void f(){ value=100; System.out.println ("FatherClass.value:"+value); } } class ChildClass extends FatherClass{ public in

举例讲解Java编程中this关键字与super关键字的用法_java

this总要有个事物来代表类的当前对象,就像C++中的this指针一样,Java中的this关键字就是代表当前对象的引用. 它有三个主要的作用: 1.在构造方法中调用其他构造方法.       比如有一个Student类,有三个构造函数,某一个构造函数中调用另外构造函数,就要用到this(),而直接使用Student()是不可以的. 2.返回当前对象的引用. 3.区分成员变量名和参数名. 看下面的例子: public class Student { private String name; pr

详解Java编程中super关键字的用法_java

通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法.在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当

java super-java中super关键字的疑问

问题描述 java中super关键字的疑问 其实我想问的是为什么在静态方法中不能用super? 既然编译器规定我们不能在静态方法中使用super只能在实例方法中使用.而子类中的实例方法要调用只有等到对象产生后.但是我们都知道抽象类是不能被实例化的但是却能在其子类中调用其方法. 如果说super是指向父类的引用这个引用在虚拟机中是怎样形成的又是何时形成的? 解决方案 java中super关键字的使用JAVA中super关键字的用法Java中super关键字的三种用法 解决方案二: 静态字段.成员不

java方法重写和super关键字

//java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //super:强行调用父类方法的执行 /*重载和重写的区别? * 重载是发生在一个类中 对权限没有要求 而且重载的方法参数可以不同 * 重写发生在继承汇总 被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同 * */ class A{ public void tell(){ Sy

Java的super关键字与instanceof运算符使用方法_java

Java super关键字 super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类中,Java 能自动向上层类追溯. 父类行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自动向上层类追溯. super 关键字的功能: 调用父类中声明为 private 的变量. 点取已经覆盖了的方法. 作为方法名表示父类构造方法. 调用隐藏变