千家信息网

Java多态的使用方法是什么

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"Java多态的使用方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多态的使用方法是什么"吧!一.再探向上转型(upcas
千家信息网最后更新 2025年01月20日Java多态的使用方法是什么

本篇内容主要讲解"Java多态的使用方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多态的使用方法是什么"吧!

一.再探向上转型(upcasting)

将某个object reference视为一个"reference to base type"的动作,称为向上转型。

1. Upcasting后调用某个函数时,如果derived class中覆写了该函数,则会调用derived class中的函数;否则,会调用base class中的函数。如

class First{

public void prt(){

System.out.println("First");

}

}

class Second extends First{

//(a)

public void prt(){

System.out.println("Second");

}

}

public class ExplicitStatic{

public static void main(String[] args){

First n = new Second();

n.prt();;

}

}

结果为Second。如果当Second class中的prt()函数注释掉,将输出First。

2. 向上转型后只能调用base class中被derived class覆写的函数。

/*

abstract class First{

int i = 122;

public void prt(){

System.out.println("First.i = " + i);

}

public abstract void prt(First f);

}

XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

class Second extends First{

public void prt(){

System.out.println("Second.i = " + i);

}

public void prt(First i)

{

}

public void prt(int i)

{

}

}

public class ExplicitStatic{

public static void main(String[] args){

First n = new Second();

n.prt(2);;

}

}

*/

class First{

public void prt(){

System.out.println("First");

}

}

class Second extends First{

//(a)

public void prt(){

System.out.println("Second");

}

public void prt(int i){//(a)

System.out.println("Second.i = " + i);

}

}

public class ExplicitStatic{

public static void main(String[] args){

First n = new Second();

n.prt(3);

}

}

(a)处的函数只是Second class中的函数,所以不能通过n.prt(3)进行调用。

二.Abstract class和Abstract methods

1. 如果一个class中存在abstract class,则class也必须被声明为abstract class。

2. abstract class不能被实例化。

3. 如果base class是一个abstract class,那么derived class必须实现base class中所有的abstract methods;否则,derived class也必须被声明为abstract class。

三.其它要点

1. 纯粹继承与扩充

纯粹继承:只有base class所建议的函数,才被derived class加以覆写。

扩充:除了覆写base class的函数,还实现了自己的函数

abstract class First{

public abstract void f();

public abstract void g();

}

//纯粹继承

class Second extends First{

public void f(){}

public void g(){}

}

//扩充

class Third extends First{

public void f(){}

public void g(){}

public void u(){}//base class不存在的函数

}

2. 向下转型

1) 向下转型时只能调用base class中被覆写过的函数

2) 只有本来就为derived class对象时才能正确向下转弄。

class First{

public void f(){}

public void g(){}

}

class Second extends First{

public void f(){}

public void g(){}

public void u(){}

public void v(){}

}

public class ExplicitStatic{

public static void main(String[] args){

First[] x = {new First(), new Second()};

x[0].f();

x[1].g();

//!x[1].u();class First中不存在函数u()

//((Second)x[0]).f();(a)

((Second)x[1]).u();

}

}

(a)处会抛出ClassCastException异常。

到此,相信大家对"Java多态的使用方法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

函数 方法 多态 使用方法 内容 只有 学习 实用 更深 兴趣 动作 只是 实例 实用性 实际 对象 建议 操作简单 更多 朋友 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为什么连接不上服务器 mapgis数据库步骤 派出所网络安全排查整治情况汇报 北京制作定制软件开发 安全风险数据库制作 网络安全先进集体和先进个人 svn服务器备份 天河app软件开发哪家好 网络安全基金龙头 云组态软件开发 网络安全培训后能干什么 达梦数据库员工五险一金交多少 税务网络安全信息制度 福建安全云空间定制服务器 sql 数据库 镜像 故障转移 数据库如何关闭文件 长乐坊服务器怎么样 中央关于网络安全的战略部署 网络安全预警和处理记录 网上国网软件开发公司 深圳前端软件开发哪里好 腾讯关注的网络安全公司 互联网科技公司实习报告 无线传感器网络技术设计报告 浚峰网络技术有限公司怎么样 上饶市鑫恒信网络技术有限公司 服务器地址注册 网络安全硕士出来干什么 软件开发公司核心技术 华为服务器管理端口添加硬盘
0