在之前的文章中我说了Java中继承的用法和我铸币的编程经历,相信大家也会有所成长吧
下面先引入·一段代码
package com.Extends;
public class ExtendText {
public static void main(String[] args)
{
Son son = new Son();
System.out.println(son.name+son.name+son.love);
}
}
class Grfa
{
String love="war ";
int age = 18;
}
class Fa extends Grfa
{
String brand="huawei ";
String name = "ybb ";
}
class Son extends Fa
{
String name="cpb ";
int age = 88;
}
先用文字说明就是跟方法的调用差不多,可以参考一下,首先我们知道的是方法加载类信息,在这个例子是先加载object,然后加载grfa,接着是father,最后是son,然后再堆中开辟空间,那类里的属性谁先谁后捏,这个自然看的是类信息加载的先后顺序,先在堆中有指向常量池的存放着war
的地址,接着是数据类型int 18 依次类推。
上图例
那有聪明的帅哥就会问,你怎么知道son.name调的是谁,我在着可以他会在子类中开始找,如果没有就向父类找,一直到找到为止或找至object类。
还有一些比我帅的人会问,你有两个name,我就要fa类的你怎么办,用super,这个等我学会了再说。
补充一下,如果我的使用了private就不能访问了,不能超权限。
结束。