OO面向对象——多态
Posted xianxiansir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OO面向对象——多态相关的知识,希望对你有一定的参考价值。
-
动态编译:可扩展性
-
及同一种方法可以根据发送对象的不同而采用不同的行为方式
-
一个对象的实际类型是确定的,但是指向对象的引用类型有很多
public class person {
public void run(){
System.out.println("run");
}
}
public class Student extends person{
public class Test {
public static void main(String[] args) {
person a = new Student();
Student b = new Student();
a.run();
b.run();
}
}
子类重写父类的方法后,创建的对象无论时父类的引用还是子类的引用。都会执行子类的重写后的方法。
public class person {
public void run(){
System.out.println("run");
}
?
public void say(){
System.out.println("say");
}
}
public class Student extends person{
子类不重写父类的方法,会继承父类的逻辑。子类使用的方法是自己的或者继承父类的。
父类型可以指向指向子类,但是不能调用子类独有的方法。
对象可以执行哪些方法看左边的引用类型,和右边无关。
-
多态的注意事项
1.多态是方法的多态,属性没有多态。
2.父类和子类有联系,可以进行转换
3.多态存在条件:继承关系,方法需要重写,父类引用指向子类对象。
不能重写的方法:static修饰的方法、final修饰的方法、private修饰的方法
public final void teach(){
System.out.println("111");
}
public static void teach(){}
静态方法属于类 ,应使用类名+方法,因为超类和子类类名不同,同名的静态方法完全没有关系。
以上是关于OO面向对象——多态的主要内容,如果未能解决你的问题,请参考以下文章