ToB企服应用市场:ToB评测及商务社交产业平台

标题: 多态详解 [打印本页]

作者: 祗疼妳一个    时间: 2022-8-25 09:05
标题: 多态详解
1.多态的概念
    同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)
`
  1.     new Student();//new了一个对象则它的实际类型是确定的
  2.     new Person();
复制代码
`

当子类重写父类的方法之后就走的都是子类的方法如下图:

对象能执行哪些方法,主要看对象左边的类型,和右边关系不大,如下图

2.多态注意事项
    (1)多态是方法的多态,属性没有多态。
    (2)父类和子类有联系,若没有关系强制转换时会出现转换异常(ClassCastException)
    (3)存在与继承关系,且方法得重写,父类的引用指向子类对象
3.一些不能重写的方法
    (1)static方法,属于类,但不属于实例
    (2)final方法:常量
    (3)private方法
Application类方法代码:
点击查看代码
  1. package com.Tang.oop.demo06;
  2. public class Application {
  3.     public static void main(String[] args) {
  4.         //一个对象的实际类型是确定的
  5.         //new Student();
  6.         //new Person();
  7.         //可以指向的引用类型就不确定了
  8.         //Student能调用的方法都是自己的或者继承父类的
  9.         Student s1 = new Student();
  10.         //Person 为父类型,虽然可以指向子类但是不能调用子类独有的方法
  11.         Person s2 = new Student();//父类的引用指向子类
  12.         Object s3 = new Student();
  13.         //对象能执行哪些方法,主要看对象左边的类型,与右边关系不大
  14.         s2.tea();
  15.         s1.tea();
  16.         //s2.run();//子类重写父类方法,则执行子类的方法
  17.         //s1.run();
  18.     }
  19. }
复制代码
Student类方法代码:点击查看代码
  1. package com.Tang.oop.demo06;
  2. public class Student extends Person{
  3.     @Override
  4.     public void run() {
  5.         System.out.println("son");
  6.     }
  7.     public void tea(){
  8.         System.out.println("chifan");
  9.     }
  10. }
复制代码
Person类方法代码:点击查看代码
  1. package com.Tang.oop.demo06;
  2. public class Person {
  3.     public void run(){
  4.         System.out.println("run");
  5.     }
  6. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4