概念: 他们之间按顺序继承Object>Person>Student从父亲到儿子到孙子,父类的引用指向子类,就是多态
Son son= new Son();
Person person = new Son();
Object object=new Son();
#代码部分
##父类
package base.oop.Demo07;
public class Person {
public void say(){
System.out.println("父亲说了一句话");
}
}
##子类
package base.oop.Demo07;
public class Son extends Person {
public void say(){
System.out.println("儿子说了一句话");
}
public void eat(){
System.out.println("儿子吃了一点东西");
}
}
##测试类
package base.oop.Demo07;
import base.oop.Demo03.Student;
public class Application {
public static void main(String[] args) {
//某一个儿子的属性,一定是某一个人的属性;有点类似于:动物 某一个动物的属性=猫 某一只猫的属性
//他们之间因为存在继承关系,所以连带着属性的关系也被继承
Son son= new Son();
Person person = new Son();
Object object=new Son();
son.say();//子类一旦重写了父类的方法,父类的方法也就变成了子类的方法,直接改换了
person.say();
son.eat();//非静态、儿子自己的方法可以直接调用
//person.eat();这一句会报红
/*只能强制转换为((student)person).eat();才可以“
(要转换的类型)转换对象”这个就是强制转换,高类型转换为低类型*/
/* 父亲没有继承于儿子,所以不可以调用儿子的方法,
只有儿子可以调用父亲的方法,并且可以重写父亲的方法*/
}
}
#注意事项
/*
1.多态是方法的多态,属性没有多态
2.父类和子类有联系,
3.存在条件:继承关系,方法需要被重写,父类的引用指向子类,也就是A a=B b;(A继承于B)这个意思,
4.什么样子的方法不能被重写
static:它属于类,不属于实例
final: 是一个常量
private:属于私有的,不能被重写
- */