java-三大特性之一继承

来源:互联网 发布:云计算需求调研报告 编辑:程序博客网 时间:2024/06/05 11:02

关于继承的一些简单介绍看我之前的博客;
那里介绍了,为什么要有继承,继承是怎么表达的,以及编写了一个代码来解释了一下,并且也还画了一幅内存图简单介绍了一下;
链接;http://blog.csdn.net/zw1996/article/details/53208911;

1;我们先说一下,关于继承的规则;
1.1;关于成员变量的继承规则,应该说是成员变量的可见性;
这里还是回到了,访问修饰符;之前博客介绍;
http://blog.csdn.net/zw1996/article/details/53240155
总结就是一句话,
父类中的private的成员变量子类是访问不了的;public的则可以;
这里写图片描述
1.2;关于父类成员的隐藏;
当子类和父类有相同的成员(方法或变量)时的时候,那么此时父类的成员会被隐藏,所有的调用都是调用的子类这个成员,除非使用super.这样才能访问到这个父类的成员;
这里写图片描述

这里写图片描述

//这样的代码还是对的,调用的是子类的方法;public class Main{    public static void main(String[] args){            Car bus = new Bus();            bus.show();    }}/*public class Car{    public void show(){        System.out.println("调用父类");    }}public class Bus extends Car{    public void show(){        System.out.println("调用子类");        super.show();    }}*/
//这个代码就是不行了;//因为父类里面没哟show方法,没有构成重写;//因此父类的引用是看不到子类的方法的;//重写其实父类引用也是看的父类的方法,只是;里面存在动态绑定因此调用的是子类的方法;public class Main{    public static void main(String[] args){            Car bus = new Bus();            bus.show();    }}/*public class Car{}public class Bus extends Car{    public void show(){        System.out.println("调用子类");        super.show();    }}*/

这里写图片描述

使用super调用出父类的方法;
这里写图片描述

1.3;this和super;
在java中this和super与继承是密切相关的,
this常用来引用当前对象;
super常用来引用父类对象;
这个在之前的实例中体现了;

1.4;强制类型转化;
这个其实和基础数据类型的转化差不多,只是这里是引用类型的转化;
说一下引用吧;
之前不断的说什么父类引用,子类引用,什么的;
其实这些引用只是看对象的角度;
new出一个子类对象,站在子类的角度看,当然全部可以看到,
但是站在父类的角度看,则只能看到父类的那部分;这个可以看内存图了;
关于这里了,就可以来强制转化;
这里写图片描述

还有一个比较有趣的问题关于引用类型的转化;这个还是单独拿出来说吧;
下次贴链接;

还有一个关于继承的构造方法的例子;
就是实例化子类的时候一定会先实例化父类;
1.5;注意所有类都继承与Object类,并且所有类都包含Object类中的方法;下次细说;

继承就暂时总结到这里了, 以后再来完善;

0 0