• 面向对象三大特征------多态


    什么是多态?

    父类引用变量可以指向子类对象 但是前提必须是子父类继承关系或者是接口关系,否则无法完成多态,在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

    多态的定义格式:

    父类类型  变量名 = new 子类类型();

    变量名.方法名();

    package com.oracle.demo02;
    //抽象类
    public abstract class Person {
    
    }
    
    
    //接口类
    public interface Smoking {
    
    }
    

      

    package com.oracle.demo02;
    
    public class Student extends Person {
    
    }
    
    
    public class Work implements Smoking {
    
    }
    

      

    package com.oracle.demo02;
    
    public class Demo {
    	public static void main(String[] args) {
    		/*普通类子父类之间的多态:
    		     父类类型 变量名 =new 子类类型();
    		*/
    		Fu fu=new Zi();
    		
    		/*抽象类与普通类的多态*/
    		Person p=new Student();
    		
    		/*接口与普通类的多态*/
    		Smoking s=new Work();
    		
    	}
    }
    

    多态的成员特点:

    多态中调用(成员变量)的特点
    编辑运行都看左边。
    运行时,走父类成员变量的值

    多态中调用(成员方法)的特点
    编译看左边,运行看右边

    instanceof:判断对象属于哪种数据类型

    向上转型:

    当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。

    父类类型  变量名 = new 子类类型();

    如:Person p = new Student();

     向下转型:

    一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的!

    子类类型 变量名 = (子类类型) 父类类型的变量;

    如:Student stu = (Student) p;  //变量p 实际上指向Student对象

    什么时候使用向下转型:

    当要使用子类特有功能时,就需要使用向下转型。

  • 相关阅读:
    SQL server 和Oracle 序列
    AD 域服务简介(一)- 基于 LDAP 的 AD 域服务器搭建及其使用(转)
    Windows Server 2008 R2 搭建DNS服务器(转)
    windows7下搭建HTTP服务器
    解决vcenter 6.0 vcsa安装插件时报错的问题
    Windows server 2008R2系统登录密码破解
    vmware Horizon 7 与远程桌面(mstsc)兼容性问题解决办法
    VCSA服务重启命令
    如何哄女朋友开心(转)
    快速搭建一个本地的FTP服务器 win10及win7
  • 原文地址:https://www.cnblogs.com/awdsjk/p/10913974.html
Copyright © 2020-2023  润新知