首页 > 其他 > 详细

动手动脑4

时间:2018-11-07 22:44:18      阅读:237      评论:0      收藏:0      [点我收藏+]

(1)继承中基类构造函数的调用:
源代码:

 

public class a {
public a()
{
System.out.println("a的构造方法被调用");
}
}
public class b extends a{
public b()
{
super();
System.out.println("b的构造方法被调用");
}
}
public class c extends b{
public c()
{
System.out.println("c的构造方法被调用");
}
}
public class m {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
c child=new c();
}
}

 

构造函数的作用是用来初始化,当对子类的对象进行初始化时一定会需要对其继承的基类的所有字段等进行初始化,在进行对子类的对象进行初始化之前会调用基类的构造函数,并且按照继承顺序依次调用。


运行结果:

技术分享图片


(2)源代码

public class main {
/**
* @param args
*/
public String toString()
{
return "ok";
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
main a=new main();
System.out.println("a=" + a);
}
}

 


“+”号运算会调用其toString()方法,默认情况下,此方法返回“类名 @ + hashCode”。子类可以重写toString()方法。

截图:

技术分享图片

(3)super关键字

源代码

public class a {
    public void way()
    {
        System.out.println("父类的way方法被调用");
    }

}
public class b extends a{
    public void way()
    {
        super.way();
        System.out.println("子类的way方法被调用");
    }

}
public class c {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        b k=new b();
        k.way();
    }
}

  运行结果

技术分享图片

(4)

技术分享图片

 

 源代码:

public class mammal {}
public class dog extends mammal {}
public class cat extends mammal {}
public class m {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        mammal i=null;
        dog j=new dog();
        cat k=new cat();
        i=j;
         j=i;
         j=(dog)i;
         j=k;
         k=(cat)i;
    }
}

  (5)源代码

public class ParentChildTest {
    public static void main(String[] args) {
        Parent parent=new Parent();
        parent.printValue();
        Child child=new Child();
        child.printValue();
        
        parent=child;
        parent.printValue();
        
        parent.myValue++;
        parent.printValue();
        
        ((Child)parent).myValue++;
        parent.printValue();
        
    }
}

class Parent{
    public int myValue=100;
    public void printValue() {
        System.out.println("Parent.printValue(),myValue="+myValue);
    }
}
class Child extends Parent{
    public int myValue=200;
    public void printValue() {
        System.out.println("Child.printValue(),myValue="+myValue);
    }
}

技术分享图片

 

动手动脑4

原文:https://www.cnblogs.com/xuange1/p/9926151.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!