一、父类与子类的一个实例
package HELLO;
//====================== 【Father类 - 父类】
class Father
{
public void print1() //
{
print2();
}
public void print2()
{
System.out.println("我是父类中的【print2】");
}
}
//====================== 【Sub类 - 子类】
class Sub extends Father
{
public void print1(int i) // 如果有参数,执行这个!如果没有参数,执行Father类中的print1()
{
System.out.println("我是子类中的【print1】");
}
public void print2()
{
System.out.println("我是子类中的【print2】");
}
}
//====================== 【demo类】
public class demo
{
public static void main(String[] args)
{
Father m_uuu = new Sub();// 如果与父类方法重名,显示子类优先
m_uuu.print1(); // 如果与父类方法重名,显示子类优先
}
}
显示的结果是: 我是子类中的【print2】
二、子类访问父类成员的方法(super)
1、访问父类构造方法
super(); // 无参数
super(name); // 有参数
2、访问父类属性
super.name;
3、访问父类方法
super.print();
注意:以下方法是错误的。this和 super不能出现在main中
public static void main(String[] args) {
// System.out.print(super.uuu()); // 注意:this和 super不能出现在main中
}
【综合实例】:
1、Father.java 父类代码
package x_fengzhuang; // 这是包名,也是文件夹名,使用时需要改成你的文件夹名
import org.omg.CORBA.PUBLIC_MEMBER;
public class Father {
public String Name() // 父类方法,子类可以调用
{
return "诸葛亮";
}
public String Old() // public父类方法,子类可以调用
{
return "100岁";
}
private String s_Old() // private父类私有方法,子类不能调用
{
return "99岁";
}
public static void main(String[] args) {
}
}
2、Sub.java 子类代码
package x_fengzhuang; // 这是包名,也是文件夹名,使用时需要改成你的文件夹名
public class Sub extends Father {
public String getName() {
return super.Name(); // 获取父类姓名:诸葛亮
}
public String getOld() {
return super.Old(); // 获取父类姓名:100岁
// return super.s_Old(); // s_Old用的是 private,父类私有方法,子类不能调用
}
public static void main(String[] args) {
// System.out.print(super.uuu()); // 注意:this和 super不能出现在main中
Sub aaa=new Sub();
System.out.print(aaa.getName());
System.out.print(aaa.getOld());
}
}