class Person
{
//声明变量
public String name;
public int age;
//创建方法
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void show()
{
System.out.println("Name:"+name+", Age:"+age);
}
}
//子类
class Student extends Person
{
//声明变量
public String school;
//创建方法
public void setSchool(String school)
{
this.school = school;
}
//重写父类方法override
public void show()
{
System.out.println("Name:"+name+", Age:"+age+", School:"+school);
}
}
public class Test2
{
public static void main(String[] args)
{
//初始化父类,并调用父类方法
Person p = new Person();
p.setName("Person");
p.setAge(25);
p.show();
//初始化子类,并调用父类和子类的方法
Student s1 = new Student();
s1.setName("Student");
s1.setAge(18);
s1.setSchool("ZZIA");
s1.show();
//利用多态,初始化一个类型为Person的Student类,
Person s2 = new Student();
s2.setName("which");//可以调用父类的方法
s2.setAge(15); //可以调用父类的方法
//s2.setSchool("ShangHai"); //不能调用子类独有的方法,编译不能通过
s2.show(); //调用的是子类中重写父类后的show()方法,也称为虚方法
}
}
//在多态中,子类重写了父类的方法,那么调用的就是子类重写后的方法
//在多态中,不能调用子类单独拥有的方法.