父类和子类有相同的成员变量
public class Person {
private String name="person";
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void test(){
System.out.println("personTest");
}
}
public class Student extends Person{
private String name="student";
private int grade;
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public void test(){
System.out.println("studentTest");
}
public void add(){
System.out.println("add");
}
}
public class Test {
public static void main(String[] args){
Student student = new Student();
System.out.println(student.getName());
}
}
调用子类的
父类和子类有相同的成员方法
public class Test {
public static void main(String[] args){
Student student = new Student();
student.test();
}
}
调用子类的
向上转型
public class Test {
public static void main(String[] args){
Person student = new Student();
System.out.println(student.getName());
student.test();
}
}
public class Test {
public static void main(String[] args){
Person student = new Student();
System.out.println(student.getGrade());
student.add();
}
}
可以调用子类重写的方法和相同的变量,不能调用子类新增的变量和方法