首页 > 编程语言 >《Java编程思想第四版》学习笔记04

《Java编程思想第四版》学习笔记04

时间:2023-08-05 18:03:28浏览次数:44  
标签:需要 Java 04 继承 造型 合成 上溯 第四版 新类

在面向对象的程序设计中,创建和使用代码最可能采取的一种做法是:将数据和方法统一封装到一个类里,并且使用那个类的对象。有些时候,需通过“合成”技术用现成的类来构造新类。而继承是最少见的一种做法。因此,尽管继承在学习 OOP 的过程中得到了大量的强调,但并不意味着应该尽可能地到处使用它。相反,使用它时要特别慎重。只有在清楚知道继承在所有方法中最有效的前提下,才可考虑它。为判断自己到底应该选用合成还是继承,一个最简单的办法就是考虑是否需要从新类上溯造型回基础类。若必须上溯,就需要继承。但如果不需要上溯造型,就应提醒自己防止继承的滥用。在下一章里(多形性),会向大家介绍必须进行上溯造型的一种场合。但只要记住经常问自己“我真的需要上溯造型吗”,对于合成还是继承的选择就不应该是个太大的问题。

                                                                                                                                                             P.152

这一点需要记住。

标签:需要,Java,04,继承,造型,合成,上溯,第四版,新类
From: https://blog.51cto.com/u_16183536/6976833

相关文章

  • JAVA SE基础《八》 ---- 面对对象编程
    目录一、面向对象编程快速入门二、深刻认识面向对象三、对象在计算机中的执行原理四、类和对象的一些注意事项五、其他语法:this六、其他语法:构造器七、其他语法:封装八、其他语法:实体JavaBean九、面向对象编程综合案例十、补充知识:成员变量、局部变量的区别小结 前言......
  • idea java maven 项目 符号找不到
    描述:新建了一个springboot项目项目正常引入了maven依赖在实体类中引入了额@Setter@Getter注解在前端传递赋值或者new实体类给属性赋值提示找不到符号:网上找了好多的办法,都不太使用我的场景pom中引入了插件导致的问题,移除插件重试一下看看效果  ......
  • vnc Ubuntu18.04~Ubuntu22.04安装并配置
    原文链接:Ubuntu18.04~Ubuntu22.04安装并配置VNC(yii666.com) 文章目录前言一、VNC是什么?二、系统环境1.前提2.打开Share开关3.安装x11vnc4.测试1.使用方法2.重要补充总结 前言有些操作需要Desktop环境而又不方便去现场看的这个方法能够满足你的需......
  • Linux系统下将java程序开机自启
    Linux系统下将java程序开机自启在Linux环境下,可以通过将Java程序配置为系统服务(systemd服务)来实现开机自启动。使用systemd可以很方便地管理和控制后台服务,包括Java程序。以下是一个简单的步骤来配置Java程序为systemd服务:1.编写启动脚本创建一个脚本文件,用于启动您的Java程序......
  • java练习
    packageuse;//importcom.x.Dog;需要用到那个类,就导入那个类importcom.x.*;//导入包下的所有类publicclassuser{publicstaticvoidmain(String[]args){Dogdog=newDog();com.y.Dogdog1=newcom.y.Dog();"hello".equal......
  • java中ConcurrentHashMap底层原理 - 面试宝典
    ConcurrentHashMap是Java中的线程安全的哈希表实现。它通过使用分段锁(Segment)来实现并发访问的高效率。下面是ConcurrentHashMap的底层原理:数据结构:ConcurrentHashMap内部由一个Segment数组和若干个哈希桶(HashEntry)组成。每个Segment包含一个哈希桶数组和一个共享的锁。每个哈希桶......
  • 深度剖析JAVA 函数式接口
    一、什么是函数式接口:函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。可以有多个非抽象方法。为了避免别人在这个接口中增加......
  • 输入字符串查找字符串中都有什么组成 java代码如下
    importjava.util.Scanner;publicclassDemo02{publicstaticvoidmain(String[]args){System.out.println("请输入一个字符串:");Stringcc=newScanner(System.in).nextLine();char[]arr=cc.toCharArray();intcoun......
  • java-concurrent-interview-must
    10道不得不会的Java并发基础面试题以下都是Java的并发基础面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,建议收藏,经常温习查阅。评论区见1.start()方法和run()方法的区别如果只是调用run(......
  • java题
    equals与==的区别1、功能不同"=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。2、定义不同"equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。3、运行速度不同"=="比"equ......