广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java多态注意项小结
  • 801
分享到

java多态注意项小结

2024-04-02 19:04:59 801人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

展示多态现象 package test; //父类引用,指向(不同子类)的实例,对同一个实例方法名调用,调用的程序不 //一样。继承是多态得以实现的基础。 public int

展示多态现象


package test;

//父类引用,指向(不同子类)的实例,对同一个实例方法名调用,调用的程序不
//一样。继承是多态得以实现的基础。
public interface test1 {
    void shout();
}

package test;

public class test2 implements test1 {
    public void shout() {
        System.out.println("1111");
    }
}

package test;

public class test3 implements test1 {
    public void shout() {
        System.out.println("222222");
    }
}


package test;

public class test4 {
    public static void main(String[] args) {
        test1 ts = new test2();
        ts.shout();

        test1 ts1 = new test3();
        ts1.shout();
    }

}

多态的基础以及限制


package test;

public class test5 {
    public static void speak() {

        System.out.println("speak:");
    }

}



package test;

public class test6 extends test5{

    public static void speak() {
        System.out.println("11111");
    }
//多态的基础是继承和重写
    //多态仅限于实例方法
    public static void main(String[] args) {
        test5 ts1 = new test5();
        test6 ts = new test6();
        ts1.speak();
        ts.speak();
    }
}

对象类型转换


package test;

public class test7 {
        public void speak(){
            System.out.println("speak:");
        }
}

package test;

public class test8 extends test7{
    @Override
    public void speak() {
        System.out.println("1111");
    }
}


package test;

public class test9 extends test7 {
    @Override
    public void speak() {
        System.out.println("22222");
    }

    protected void action() {
        System.out.println("敲代码");
    }
}

package test;

public class test10 {
    public static void main(String[] args) {
        //向上类型转换 隐式 安全
        //将test8的对象当作test7类型来用
        test7 ts = new test8();
        ts.speak();

        //强制类型转换 显示 不安全

        test7 ts1 = new test9();
        test9 ts2 = (test9) ts1;
        ts2.speak();

        //怎么避免强制类型转换带来的不安全  面向接口编程加instanceof

        test7 ts3 = new test8();
        test7 ts4 = null;
        if (ts3 instanceof test9) {
            ts4 = (test9) ts3;
        }
        if (ts3 instanceof test8) {
            ts4 = (test8) ts3;
        }
        ts4.speak();
    }

}

object类

在这里插入图片描述

Object类的常用方法也可以被重写


package test;

public class test11 {

    public void speak(){
        System.out.println("speak:");
    }
}


package test;

public class test12 {
    public static void main(String[] args) {
        test11 ts = new test11();
        ts.speak();
        //返回该对象的字符串表示
        System.out.println(ts.toString());
        //返回该对象的哈希码值
        System.out.println(ts.hashCode());
    }
}

匿名内部类


package test;

public interface test13 {
    void speak();
}


package test;

public class test14 {

    //类里面定义的类称之为内部类(Inner Class),内部类是外部类的一个成员。
    //Java内部类可以分为:成员内部类、方法内部类和匿名内部类等。
    class person implements test13{

        @Override
        public void speak() {
            System.out.println("111111");
        }
    }

    public static void main(String[] args) {
        class person1 implements test13{
            @Override
            public void speak() {
                System.out.println("2222222222");
            }
        }

//        可以使用匿名内部类来实现接口。所谓匿名内部类就是没有名字的内部类,表面上看
//        起来它似乎有名字,实际那不是它的名字。当程序中使用匿名内部类时,在定义匿名
//        内部类的地方往往直接创建该类的一个对象。
        new test13(){
            @Override
            public void speak() {
                System.out.println("3333333");
            }
        }.speak();
    }
}

到此这篇关于java多态注意项总结的文章就介绍到这了,更多相关java多态内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java多态注意项小结

本文链接: https://www.lsjlt.com/news/154574.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java多态注意项小结
    展示多态现象 package test; //父类引用,指向(不同子类)的实例,对同一个实例方法名调用,调用的程序不 //一样。继承是多态得以实现的基础。 public int...
    99+
    2022-11-12
  • Java方法的返回值及注意事项小结
    目录方法的返回值为什么要有带返回值的方法呢?带返回值方法的定义和调用:1.带返回值方法定义的格式:2.带返回值方法的调用格式:练习1:练习2:方法的注意事项:return关键字:方法...
    99+
    2023-05-17
    Java方法的返回值 Java返回值
  • Vue3.2.x中的小技巧及注意事项总结
    目录前言小技巧关于减少.value的使用关于减少import导入语句关于在script setup中声明组件名字注意事项关于响应式的问题模板循环中加不加key的问题总结前言 vue3...
    99+
    2022-11-13
  • Python开发注意事项:处理多线程和多进程时的注意事项
    Python开发注意事项:处理多线程和多进程时的注意事项在Python开发过程中,使用多线程和多进程可以充分利用计算机的多核处理能力,提高程序的效率和性能。然而,使用多线程和多进程也会带来一些潜在的问题和挑战,开发者需要注意一些注意事项来确...
    99+
    2023-11-22
    gil Concurrency Locks
  • Java多线程Thread类的使用及注意事项
    目录Thread类的基本用法线程指标中断线程1.手动设置标志位2.使用Thread中内置的一个标志位来判定线程等待进程状态线程安全问题synchronized用法1.直接修饰普通的方...
    99+
    2022-11-13
  • Java中Collections.emptyList()的注意事项
    偶然发现有小伙伴错误地使用了Collections.emptyList()方法,这里记录一下。她的使用方式是: public void run() { ...... Li...
    99+
    2022-11-12
  • Python 文件处理注意事项总结
    Python 文件处理注意事项总结 文件处理在编程中是常见的操作,文件的打开,关闭,重命名,删除,追加,复制,随机读写非常容易理解和使用。需要注意的是文件的安全关闭,采用with语句轻松便捷: wi...
    99+
    2022-06-04
    注意事项 文件 Python
  • Oracle 重建表(rename)注意事项总结
    http://www.cnblogs.com/ljbguanli/p/6752029.html 一、概述 前一段时间,有一个DBA朋友在完毕重建表(rename)工...
    99+
    2022-10-18
  • oracle 11g的安装注意事项总结
    oracle 11g 安装注意事项 1、首先时这个配置安全更新页面,不需要填写电子邮件,下面安全更新也取消候选,否则一旦出现软件更新,会拖慢我们的使用进度 2、在安装选项这里,就选...
    99+
    2022-11-12
  • python编写函数注意事项总结
    1、编写注意 (1)给函数指定描述名。 (2)函数名称只包括小写字母和下划线。 (3)每一个函数都应该包含简要说明其功能的注释,注释应该紧跟在函数定义之后,并且采用文档字符串格式。 ...
    99+
    2022-11-12
  • MySQL大小写敏感的注意事项
    目录MySQL的大小写敏感是由参数控制的MySQL大小写敏感如何设置开发注意事项总结由于这个原因,在阿里巴巴规约中这样要求: 【强制】表名、字段名必须使用小写字母或数字 , 禁止出现数字开头,禁止两个下划线中间只 ...
    99+
    2022-05-19
    MySQL 大小写 MySQL 大小写敏感
  • C++开发注意事项:避免C++多态性的潜在问题
    C++作为一种面向对象的编程语言,多态性是其的一大特点。多态性可以帮助我们在编写程序时更加灵活,有效地复用代码。但是,当我们不小心使用不当的多态性方法时,就会出现潜在的问题。本文将介绍一些C++开发注意事项,以避免多态性带来的潜在问题。避免...
    99+
    2023-11-22
    多态性 C++开发 潜在问题
  • C++中vector容器的注意事项总结
    目录容量(capacity)和大小(size)的区别容器扩容的本质emplace_back()和push_back()的区别emplace()和insert()的区别附:如果vect...
    99+
    2022-11-12
  • C/C++中的静态变量注意事项
    前言 C/C++中的静态变量,相信大多数人都用过,但你很可能用错了,包括你现在所在的项目中都可能埋着这个坑,不信我们往下看! 正文 我们先来看一段大家常写的代码,很简单,这段代码没啥...
    99+
    2022-11-13
  • 小程序申请有什么注意事项
    小编给大家分享一下小程序申请有什么注意事项,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!申请小程序时,请务必注意小程序的名称,自我介绍,徽标,服务范围,服务标签,...
    99+
    2023-06-27
  • mysql修改大小写参数注意事项
    原由:数据库中原本参数lower_case_table_names的值为0,应开发要求需要修改为不区分大小写,即修改为1。但是修改完之后,发现本来建立的大写字母的表查不到。 修改过程 1,在参数文件中修改l...
    99+
    2022-10-18
  • vue.prototype和vue.use的区别和注意点小结
    目录vue.prototype和vue.use的区别和注意点总结补充:vue.prototype和vue.use的区别Vue.use和Vue.prototype区别vue.proto...
    99+
    2023-05-14
    Vue.use和Vue.prototype区别 vue.use用法 vue.prototype用法
  • Python多线程使用和注意事项
    多线程   基本实现: 第一种,函数方式 # -*- coding:utf-8 -*- import thread import time     def print_time(threadName, delay):     count...
    99+
    2023-01-30
    多线程 注意事项 Python
  • Java HashSet的Removals()方法注意事项
    目录前言那么如何解决?前言 我有一个集合,实际上是一个HashSet。我想从中删除一些item…其中许多item可能不存在。事实上,在我们的测试用例中,“r...
    99+
    2022-11-13
  • Java集合注意事项有哪些
    今天小编给大家分享一下Java集合注意事项有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、Map 接口1、注意事项(...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作