zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【JAVA】继承:父类与子类的理解(实例)

JAVA实例继承 理解 子类 父类
2023-09-11 14:14:57 时间

一、父类与子类的一个实例

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());
	}
}