首先我们先定义一个父类,名字就叫Fu
定义父类就是一个普通的类定义
package com.test.demo02;
public class Fu {
int numFu = 10;
}
接着我们定义一个子类,名字就叫Zi
定义子类是普通类定义加上继承关键字extends
package com.test.demo02;
public class Zi extends Fu {
int numZi =20;
}
接下来我们定义一个带有main方法的测试类Demo01ExtendsField,
在main方法中声明并示例化Fu类
package com.test.demo02;
public class Demo01ExtendsField {
public static void main(String[] args) {
Fu fu =new Fu();//声明并示例化父类
}
}
在创建完Fu对象后,可以通过对象的引用来访问对象所有的成员或方法,具体格式如下:
对象引用.对象成员
对象引用.对象方法
直观一点表示:
new 类名().对象成员
new 类名().对象方法
或者更加直观一点:
fu.对象成员
fu.对象方法 //fu是Fu类声明并示例话的对象名称
我们尝试用调用对象的方法来尝试调用方法,编译器是带有方法或属性的提示的,如图下图
可以发现并没有子类(Zi)里的成员变量numZi我们完善程序,如下图
接着声明并实例化Zi类,并尝试调用Zi类的方法,注意这个时候Zi是继承自Fu类的哦,如下图
这时候可以发现子类(Zi)继承了父类(Fu)后,可以调用父类里的对象成员
补全后,如下图
=============================华丽的分割线================================
承中重名访问的特点:
在父子类的成员关系中,如果成员变量重名,则创建子类对象时,访问有方式有二
直接:直接通过子类对象访问成员变量(对象引用.对象成员)
等号左边是谁,就优先用谁,没有则向上找
间接:间接通过成员方法访问成员变量(对象引用.对象方法)
该方法属于谁,就优先用谁,没有则向上找(继承是前提)
来3张图体会一下