苍南网站开发google关键词搜索量

web/2025/10/8 9:01:33/文章来源:
苍南网站开发,google关键词搜索量,网站建设完成后期维护,重庆网站设计费用在《Think in java》中有这样一句话#xff1a;复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言#xff0c;仅仅能够复制代码并对加以改变是不够的#xff0c;它还必须能够做更多的事情。在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程…在《Think in java》中有这样一句话复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言仅仅能够复制代码并对加以改变是不够的它还必须能够做更多的事情。在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的现在我来介绍一种复用代码的方式也是java三大特性之一---继承。继承在讲解之前我们先看一个例子该例子是前篇博文(java基础(一)-----java的三大特性之封装)的。从这里我们可以看出Wife、Husband两个类除了各自的husband、wife外其余部分全部相同作为一个想最大限度实现复用代码的我们是不能够忍受这样的重复代码如果再来一个小三、小四、小五……(扯远了)我们是不是也要这样写呢那么我们如何来实现这些类的可复用呢利用继承首先我们先离开软件编程的世界从常识中我们知道丈夫、妻子、小三、小四…他们都是人而且都有一些共性有名字、年龄、性别、头等等而且他们都能够吃东西、走路、说话等等共同的行为所以从这里我们可以发现他们都拥有人的属性和行为同时也是从人那里继承来的这些属性和行为的。从上面我们就可以基本了解了继承的概念了继承是使用已存在的类的定义作为基础建立新类的技术新类的定义可以增加新的数据或新的功能也可以用父类的功能但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码能够大大的提高开发的效率。对于Wife、Husband使用继承后除了代码量的减少我们还能够非常明显的看到他们的关系。继承所描述的是“is-a”的关系如果有两个对象A和B若可以描述为“A是B”则可以表示A继承B其中B是被继承者称之为父类或者超类A是继承者称之为子类或者派生类。实际上继承者是被继承者的特殊化它除了拥有被继承者的特性外还拥有自己独有得特性。例如猫有抓老鼠、爬树等其他动物没有的特性。同时在继承关系中继承者完全可以替换被继承者反之则不可以例如我们可以说猫是动物但不能说动物是猫就是这个道理其实对于这个我们将其称之为“向上转型”下面介绍。诚然继承定义了类如何相互关联共享特性。对于若干个相同或者相识的类我们可以抽象出他们共有的行为或者属相并将其定义成一个父类或者超类然后用这些类继承该父类他们不仅可以拥有父类的属性、方法还可以定义自己独有的属性或者方法。同时在使用继承时需要记住三句话1、子类拥有父类非private的属性和方法。2、子类可以拥有自己属性和方法即子类可以对父类进行扩展。3、子类可以用自己的方式实现父类的方法。综上所述使用继承确实有许多的优点除了将所有子类的共同属性放入父类实现代码共享避免重复外还可以使得修改扩展继承而来的实现比较简单。诚然讲到继承一定少不了这三个东西构造器、protected关键字、向上转型。构造器通过前面我们知道子类可以继承父类的属性和方法除了那些private的外还有一样是子类继承不了的---构造器。对于构造器而言它只能够被调用而不能被继承。 调用父类的构造方法我们使用super()即可。对于子类而已,其构造器的正确初始化是非常重要的,而且当且仅当只有一个方法可以保证这点在构造器中调用父类构造器来完成初始化而父类构造器具有执行父类初始化所需要的所有知识和能力。1 public classPerson {2 protectedString name;3 protected intage;4 protectedString sex;56 Person(){7 System.out.println(Person Constrctor...);8 }9 }1011 public class Husband extendsPerson{12 privateWife wife;1314 Husband(){15 System.out.println(Husband Constructor...);16 }1718 public static voidmain(String[] args) {19 Husband husband newHusband();20 }21 }2223 Output:24 Person Constrctor...25 Husband Constructor...通过这个示例可以看出构建过程是从父类“向外”扩散的也就是从父类开始向子类一级一级地完成构建。而且我们并没有显示的引用父类的构造器这就是java的聪明之处编译器会默认给子类调用父类的构造器。但是这个默认调用父类的构造器是有前提的父类有默认构造器。如果父类没有默认构造器我们就要必须显示的使用super()来调用父类构造器否则编译器会报错无法找到符合父类形式的构造器。1 public classPerson {2 protectedString name;3 protected intage;4 protectedString sex;56 Person(String name){7 System.out.println(Person Constrctor----- name);8 }9 }1011 public class Husband extendsPerson{12 privateWife wife;1314 Husband(){15 super(chenssy);16 System.out.println(Husband Constructor...);17 }1819 public static voidmain(String[] args) {20 Husband husband newHusband();21 }22 }2324 Output:25 Person Constrctor-----chenssy26 Husband Constructor...所以综上所述对于继承而已子类会默认调用父类的构造器但是如果没有默认的父类构造器子类必须要显示的指定父类的构造器而且必须是在子类构造器中做的第一件事(第一行代码)。protected关键字private访问修饰符对于封装而言是最好的选择但这个只是基于理想的世界有时候我们需要这样的需求我们需要将某些事物尽可能地对这个世界隐藏但是仍然允许子类的成员来访问它们。这个时候就需要使用到protected。对于protected而言它指明就类用户而言他是private但是对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言他却是可以访问的。1 public classPerson {2 privateString name;3 private intage;4 privateString sex;56 protectedString getName() {7 returnname;8 }910 protected voidsetName(String name) {11 this.name name;12 }1314 publicString toString(){15 return this name is name;16 }1718 /**省略其他setter、getter方法 **/19 }2021 public class Husband extendsPerson{22 privateWife wife;2324 publicString toString(){25 setName(chenssy); //调用父类的setName();26 return super.toString(); //调用父类的toString()方法27 }2829 public static voidmain(String[] args) {30 Husband husband newHusband();3132 System.out.println(husband.toString());33 }34 }3536 Output37 this name is chenssy从上面示例可以看书子类Husband可以明显地调用父类Person的setName()。诚然尽管可以使用protected访问修饰符来限制父类属性和方法的访问权限但是最好的方式还是将属性保持为private(我们应当一致保留更改底层实现)通过protected方法来控制类的继承者的访问权限。向上转型在上面的继承中我们谈到继承是is-a的相互关系猫继承与动物所以我们可以说猫是动物或者说猫是动物的一种。这样将猫看做动物就是向上转型。如下1 public classPerson {2 public voiddisplay(){3 System.out.println(Play Person...);4 }56 static voiddisplay(Person person){7 person.display();8 }9 }1011 public class Husband extendsPerson{12 public static voidmain(String[] args) {13 Husband husband newHusband();14 Person.display(husband); //向上转型15 }16 }将子类转换成父类在继承关系上面是向上移动的所以一般称之为向上转型。由于向上转型是从一个叫专用类型向较通用类型转换所以它总是安全的唯一发生变化的可能就是属性和方法的丢失。这就是为什么编译器在“未曾明确表示转型”或“未曾指定特殊标记”的情况下仍然允许向上转型的原因。谨慎继承上面讲了继承所带来的诸多好处那我们是不是就可以大肆地使用继承呢送你一句话慎用继承。首先我们需要明确继承存在如下缺陷1、父类变子类就必须变。2、继承破坏了封装对于父类而言它的实现细节对与子类来说都是透明的。3、继承是一种强耦合关系。所以说当我们使用继承的时候我们需要确信使用继承确实是有效可行的办法。那么到底要不要使用继承呢《Think in java》中提供了解决办法问一问自己是否需要从子类向父类进行向上转型。如果必须向上转型则继承是必要的但是如果不需要则应当好好考虑自己是否需要继承。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注册网站免费注册邮箱建筑网址导航大全首页

jvm jstat我一直缺少在JStat中配置自定义标头的可能性 。 当然,有很多预定义的数据集,但是如果我们可以创建自己的数据集,那就更好了。 正如您可能已经设计的那样,我正在写这篇文章,因为这样的功能当然是可用的:)不幸的…

组建一个网站网站建设做什么的

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统电影院订票采取了人工的管理方法,但…

保定哪里有做网站的桂林旅游自由行攻略

译者注:本篇博客翻译自Oracle官方教程《Method References》。作为Java 8 新特性Lambda表达式的引申概念,博主依然采用官方文档的方式来学习这一重要的概念。希望对各位同道有所帮助。 方法引用 使用Lambda表达式创建匿名方法。但是,有时候…

建设网站的企业专业服务软件外包什么意思

转自 : 最近学习了Http连接池 - 五月的仓颉 - 博客园 【1】使用线程池与否的程序性能 我的任务定义:从0 累加到 100w; public class ThreadPoolMain {/*** 线程池测试*/private static final AtomicInteger THREAD_EXECUTED_TOTAL new At…

休闲食品网站模板企业手机端网站源码下载

开启靶场,打开链接: 是个贪吃蛇小游戏,看不出来有什么特别的地方 用burp抓包看看情况: 嗯?点击“开始”没有抓取到报文,先看看网页源代码是什么情况 居然直接给出flag了,不知道这题的意义何在 …

dede 友情链接 网站简况 调用和wordpress类似

深度挖掘商品信息,特别是在电商平台上,对于商家、开发者和用户来说都至关重要。jd.item_get API作为京东开放平台提供的一个强大工具,能够帮助用户轻松获取商品的全面规格参数,进而为商品分析、推荐、比较等提供有力的数据支撑。 …

西安网站建设多少钱白云百度seo公司

工业交换机,应用于工业控制领域的以太网交换机设备,使用的是透明而统专一的TCP/IP协议,本身与商属业网络在数据链路层、网络层、协议层等方面并无本质区别,接下来飞畅科技的小编来为大家详细介绍下工业交换机技术,感兴…

做网站一般需要什么烟台做网站需要多少钱

向量 //三维向量 - Vector3 //Vector3有两种几何意义 //1.位置 -- 代表一个点 print(this.transform.position);//2.方向 -- 代表一个方向 print(this.transform.forward); print(this.transform.up); 两点决定一个向量 //A和B此时 几何意义 是两个点Vector3 A new Vector3(…

成都公司核名的网站给别人网站做跳转

1.iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据 2.iOS开发——网络使用技术OC篇&网络爬虫-使用正则表达式抓取网络数据 3.iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据转载于:https://www.cnblogs…

那里做网站比较好产品外观设计流程

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

网站没有备案做竞价吗免费空间说说点赞

前两课稍稍介绍了一下函数,但光说概念还是有些抽象了,今天就来把之前那个小游戏用函数改写一下。我希望有这样一个函数,它比较两个数的大小。如果第一个数小了,就输出“too small”如果第一个数小了,就输出“too big”…

p2p网站建设报价2p排名网页设计实验报告遇到的问题

在特征工程中,将分类特征转换为数字特征的任务称为编码。 有多种方法来处理分类特征,如OneHotEncoding和LabelEncoding,FrequencyEncoding或通过其计数替换分类特征。同样,我们可以使用均值编码(MeanEncoding)。 均值编码 均值…

网站项目上线流程常见的简单的营销软件

1、 开启gradle单独的守护进程 在下面的目录下面创建gradle.properties文件 /home/<username>/.gradle/ (Linux) /Users/<username>/.gradle/ (Mac) C:\Users\<username>\.gradle (Windows) 最好是从一个项目里面拷贝过来然后修改下 #Project-wide Gradle …

大连网站网络公司网络营销能做什么

C语言进阶课程学习记录-第22课 - 条件编译使用分析 条件编译基本概念条件编译实验条件编译本质实验-ifdefinclude本质实验-间接包含同一个头文件解决重复包含的方法-ifndef实验-条件编译的应用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源…

wordpress自建表格绍兴网站seo

ClickHouse安装过程&#xff1a; ClickHouse支持运行在主流64位CPU架构&#xff08;X86、AArch和PowerPC&#xff09;的Linux操作 系统之上&#xff0c;可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。由于篇幅有限&#xff0c;本节着重讲解离线RPM的安…

东莞品牌网站设计网站服务器的作用

HTML之二&#xff1a;body标记的属性及属性值在HTML之一中&#xff0c;介绍了必须要写入的结构、title用于显示标题栏的内容、网页的内容大部分在body中编辑&#xff0c;下面简单介绍body常用的属性以及属性值。<body background"图片位置" #设置背…

flash全站案例网站预览深圳设计公司vi设计模板

网站运营者的救星&#xff1a;雷池WAF社区版 ️ 嘿朋友们&#xff01;今天我超级激动要跟你们分享一个神器——雷池WAF社区版。这个宝贝对我们这帮网站运营者来说&#xff0c;简直就是保护伞&#xff01; 智能语义分析技术&#xff1a;超级侦探上线 先说说为啥我这么稀饭它。雷…

阿里网站建设需要准备什么律师网站建设推广

多进程并发服务器 设计流程 框架一&#xff08;使用信号回收僵尸进程&#xff09; void handler(int sig) {while(waitpid(-1, NULL, WNOHANG) > 0); }int main() {//回收僵尸进程siganl(17, handler);//创建服务器监听套接字 serverserver socket();//给服务器地址信息…

浙江省建设部网站建设投资公司网站

目录 Linux环境变量配置 Linux读取环境变量 Linux环境变量配置方法一&#xff1a;export PATH Linux环境变量配置方法二&#xff1a;vim ~/.bashrc Linux环境变量配置方法三&#xff1a;vim ~/.bash_profile Linux环境变量配置方法四&#xff1a;vim /etc/bashrc Linux环境变量…

北京 网站开发 大兴html5网站有哪些

目录 0100 系统环境0200 下载0300 安装0400 服务管理0401 关闭、启动、重启服务0402 查看服务状态 0500 查看配置文件0600 账号管理0601 添加账号0602 删除账号0603 修改密码0604 忘记root密码 0700 自动备份0800 远程访问 0100 系统环境 [rootlocalhost ~]# cat /proc/versio…