什么是多态

 

 1 package com.oop;
 2 
 3 import com.oop.demo6.Person;
 4 import com.oop.demo6.Student;
 5 
 6 public class Application {
 7 
 8     public static void main(String[] args) {
 9         //一个对象的实际类型是确定的
10         //new Student();
11         //new Person();
12 
13         //可以指向的引用类型就不确定了:父类的引用指向子类
14         Student s1 =new Student();
15         //Person父类型,可以指向子类,但是不能调用子类独有的方法
16         Person s2 = new Student();
17         Object s3 = new Student();
18         //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
19         ((Student)s2).eat(); //子类重写了父类的方法,执行子类的方法
20         s1.eat();
21 
22     }
23 
24 
25 }
 1 package com.oop.demo6;
 2 //在Java中, 所有的类,都默认直接或者间接继承object
 3 //Person人: 父类
 4 //ctrl+H 展开继承关系树
 5 public class Person {
 6     public void run(){
 7         System.out.println("run");
 8     }
 9 }
10 /*
11         多态注意事项:
12         1.多态是方法的多态,属性没有多态
13         2.父类和子类,有联系类型转换异常! cLasscastException !
14         3.存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1 = new Son( );
15             1. static方法,属于类,它不属于实例
16             2. final常量;
17             3. private方法;
18 */
 1 package com.oop.demo6;
 2 //学生 is  人:派生类,子类
 3 //子类继承了父类,就会拥有父类的全部方法!
 4 public class Student extends Person {
 5     @Override
 6     public void run() {
 7         System.out.println("son");
 8     }
 9     public void eat(){
10         System.out.println("eat");
11     }
12 }

 

posted @ 2021-02-19 21:37  奔啵儿灞  阅读(90)  评论(0)    收藏  举报