public class Animal
{
	//定义动物叫的方法
	void shout()
	{
		System.out.println("动物发出叫声");
	}
}
//定义Dog类继承Animal类
class Dog extends Animal
{
	void shout()
	{
		System.out.println("汪汪......");
	}
	}

定义测试类


public class AnimalTest
{

	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Dog dog=new Dog();
		dog.shout();
	}
}

当子类重写父类的方法后,子类对象将无法直接访问父类被重写的方法;
使用super关键字调用父类成员变量和成员方法,具体格式如下;
super.成员变量
super.成员方法(参数1,参数2,、、、)


public class AnimalToday
{
	String name="动物";
	//定义动物的叫法
	void shout()
	{
		System.out.println("动物发出叫声");
	}
}
//定义Dog类继承Animal类
class Dog extends AnimalToday
{
	String name="犬类";
	//重写父类的shout()方法
	void shout()
	{
		super.shout();//访问父类的成员方法
	}
	//打印name的方法
	void printName()
	{
		System.out.println("name="+super.name);//访问父类的成员变量
	}
	}

测试类


public class AnimalTodayTest
{

	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Dog dog=new Dog();
		dog.shout();
		dog.printName();
	}

}

如何使用super关键字来调用父类的构造方法


public class AnimalToday
{
	public AnimalToday(String name)
	{
		System.out.println("我是一只"+name);
		
	}
}
//定义Dog类继承Animal类
class Dog extends AnimalToday
{
	public Dog()
	{
		super("沙皮狗");//调用父类有参的构造方法
	}
	}

测试类

public class AnimalTodayTest
{

	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Dog dog=new Dog();
	}

}

注意:通过super关键字调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。否则程序在编译期间就会报错。

欢迎指出代码的不足之处,我很高兴你能指出我的错误。