当前位置: 首页 > news >正文

制作企业网站的实训报告品牌网站定制开发

制作企业网站的实训报告,品牌网站定制开发,wordpress站外链接跳转页面,网站开发人员的考核Hello , 各位同学朋友大家好啊, 今天给大家分享的技术呢, 是面向对象三大特征之一的继承#xff0c;我们今天主要按照以下几个点, 展开继承的讲解。目录 :* 继承的介绍* 继承的好处和弊端* 继承中成员访问特点 - 成员变量* 继承中成员访问特点 - 成员方法* 方法重写* 继承中成…Hello , 各位同学朋友大家好啊, 今天给大家分享的技术呢, 是面向对象三大特征之一的继承我们今天主要按照以下几个点, 展开继承的讲解。  目录 :  * 继承的介绍  * 继承的好处和弊端  * 继承中成员访问特点 - 成员变量  * 继承中成员访问特点 - 成员方法  * 方法重写  * 继承中成员访问特点 - 构造方法  * this 和 super 关键字继承的介绍   提到了继承, 大家想到了什么 ? 是的, 子女继承到的家产, 那家产是存在着一种关系的, 父亲和儿子的关系 。   对比生活中的继承, Java 中的继承, 其实就是让**类与类**之间产生关系, 什么关系 ? 子父类关系, 当这种关系建立起来之后, 子类就可以直接使用父类中, **非私有**的成员了。   聊到这个地方, 很多同学就在想, 我为什么让我的类与类之间建立这种关系呢 ? 请同学们先阅读下方代码。   假设, 我要编写一款 xxx 公司的人员管理系统, 这款管理系统需要对项目经理和程序员的信息做管理, 所以就需要编写如下两个类   现在大家可以发现, 这两个类中的东西, 完全是长一样的 !!! 那我将来要是再多一个 Hr 的类, 对人事的信息做管理, 这些重复的代码, 岂不是要再写一遍 ? 麻烦 !   所以, 这时候我要用继承来优化代码了   我将这些类当中, [共性] 或者说是 [相同] 的内容, 抽取到一个父类 (Employee 员工 ) 当中 , 再让 Coder 和 Manager 继承 Employee, 代码就不需要重复编写了 , 这就能够提高代码的复用性了 ~   但是, 代码层面, 我给如何让 Coder 和 Manager 继承 Employee 呢 ? 请同学们继续看继承的格式。  继承的格式 :  可以看到, 实现继承, 我们是通过 extends 关键字进行编写的 , 下面我们编写下代码  示例代码 :classEmployee{String name;int age;double salary;}classCoderextendsEmployee{}classManagerextendsEmployee{}publicclassTest{publicstaticvoidmain(String[] args){Coder c newCoder();c.name 张三;c.age 23;c.salary 12000;System.out.println(c.name --- c.age --- c.salary);Manager m newManager();m.name 李四;m.age 24;m.salary 18000;System.out.println(m.name --- m.age --- m.salary);}}通过上面的代码, 同学们可以发现, Coder 和 Manager 中, 明明什么都没写, 但是却能够访问到父类 Employee 中的属性了。  所以, 重复的代码就不需要重复编写, 代码的复用性就提高了 ~  但是, 我相信有些同学可能会想  Q : 按照标准 JavaBean 来说, 成员变量不应该私有化吗 ? 那如果父类中的成员私有了, 子类岂不是用不到这些数据了。  A : 能想到这个问题非常好, 说明之前的知识掌握的很扎实, 但是继续想, 我们私有成员变量之后, 会提供对应的 set 和 get 方法吧, 这些set \ get 可都是公共的, 子类是可以继承到直接用的。  示例代码 :packagecom.itheima.myextends;classEmployee{privateString name;privateint age;privatedouble salary;publicEmployee(){}publicEmployee(String name,int age,double salary){this.name name;this.age age;this.salary salary;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age age;}publicdoublegetSalary(){return salary;}publicvoidsetSalary(double salary){this.salary salary;}}classCoderextendsEmployee{}classManagerextendsEmployee{}publicclassTest{publicstaticvoidmain(String[] args){Coder c newCoder();c.setName(张三);c.setAge(23);c.setSalary(12000);System.out.println(c.getName()--- c.getAge()--- c.getSalary());Manager m newManager();m.setName(李四);m.setAge(24);m.setSalary(18000);System.out.println(m.getName()--- m.getAge()--- m.getSalary());}}  2. 继承的好处和弊端  好处 :   通过上面的代码, 同学们感受到继承的什么好处了啊 ? 是的, 非常明显的发现, 代码的复用性提高了。  除此之外呢, 继承还可以提高代码的维护性 , 这什么意思 ?   假设, 我要在这款管理系统中, 加入一个 id 的属性, 那使用继承前, 我就需要在每一个类中, 挨个编写, 但是现在有了继承后, 我只需要在父类中编写一个 id, 所有的子类, 是不是就都具备了这个属性了 ? 是的 ! 这就提高了代码的维护性了 !  弊端 :  继续刚刚的思路, 同学们可能会想, 增加一个, 所有子类都有了, 那删除一个, 岂不是所有子类都没有了啊...   这不就牵一发而动全身了嘛... 是的, 这就是继承的弊端, 类的耦合性太强了。  何时使用继承 :  聊到现在, 大家发现继承有好处, 也有弊端, 那该如何设计, 才能让利大于弊呢 ?  正确示例 :  错误示例 :  3. 继承中成员变量访问特点  思考子父类中如果出现了重名的成员变量使用的时候会优先使用??  运行效果 :  原因 :  一定要使用父类的, 可以使用 super 关键字进行区分  这里同学们可以先建立起一个使用思路  this. 调用本类成员  super.调用父类成员publicclassZiextendsFu{int num 20;publicvoidmethod(){System.out.println(super.num);}}4. 继承中成员方法访问特点  * 思考子类继承了父类之后是否可以自己继续定义方法?  * 回答当然可以, 子类继承父类, 是可以在继承到父类成员之后, 继续加东西的  * 问题 : 那子父类中, 要是出现了重名的成员, 逻辑却不一样呢 ?publicclassFu{publicvoidmethod(){// 父类的方法System.out.println(父类method...);}}classZiextendsFu{publicvoidmethod(){System.out.println(子类method...);}}* 运行结果 :子类method...结论 :  子父类中如果出现了重名的成员方法优先使用子类的方法 , 但这其实是子类方法对父类方法进行了重写。  方法重写 Override :   先跟大家聊聊什么是方法重写,在继承体系中子类可以继承到父类的方法, 但有时子类并不想原封不动地继承父类的方法而是想作一定的修改, 这就需要采用方法的重写方法重写又称方法覆盖。  classFu{publicvoidcatch(){System.out.println(使用弓箭捉羊...);}}classZiextendsFu{Overridepublicvoidcatch(){System.out.println(使用98Kar狙击枪捉羊...);}}注意事项 :   解释 :     父类中私有的方法, 子类访问不到, 就更不能重写了     子类重写父类方法, 可以理解为是对功能进行增强, 那如果允许把访问权限降低, 那岂不是功能越做越差了嘛  Java 中继承的特点 :   了解了 Java 中方法重写后, 我们再来说下 Java 中继承的特点  * 特点 : Java只支持单继承不支持多继承但支持多层继承  * 其实就是说, 一个类, 最多只能有一个父类, 不能同时有多个父类classA{}classB{}classCextendsA,B{}// 编译出错  * 为什么 ? 因为**担心逻辑冲突**   * 问题 : 那多层继承呢 ?  5. 继承中构造方法的访问特点  * 思考问题 : 父类的构造方法, 子类能不能继承到呢 ?  * 回答 : 不允许, 因为构造方法要求, 方法名和类名必须相同, 如果子类继承到父类的构造方法, 那方法名和类名就不一致了。  * 结论 : 子类不能继承父类的构造方法, 将来子类的构造方法, 需要自己编写。publicFu{publicFu(){}}classZiextendsFu{publicFu(){}// 如果子类继承到父类的构造方法, 那方法名和类名就不一致了}继承中构造方法的访问流程  * 阅读代码材料 :publicclassTest{publicstaticvoidmain(String[] args){Zi z1 newZi();Zi z2 newZi(10);}}classFu{publicFu(){System.out.println(Fu类空参构造方法);}publicFu(int num){System.out.println(Fu类带参数构造方法);}}classZiextendsFu{publicZi(){System.out.println(Zi类空参数构造方法);}publicZi(int num){System.out.println(Zi类带参数构造方法);}}* 运行效果 :Fu类空参构造方法 Zi类空参数构造方法 Fu类空参构造方法 Zi类带参数构造方法通过打印效果同学们可以看出, 我们无论通过子类的哪一个构造方法创建对象, 都会执行到 Fu类的空参构造方法。  为什么 ? 因为在子类的构造方法, 第一行代码, 系统会默认帮我们加入 super ();  通过super() 在访问父类的构造方法 , 现在我们手动把 super(); 加上, 同学们再阅读下试试吧~publicclassTest{publicstaticvoidmain(String[] args){Zi z1 newZi();Zi z2 newZi(10);}}classFu{publicFu(){System.out.println(Fu类空参构造方法);}publicFu(int num){System.out.println(Fu类带参数构造方法);}}classZiextendsFu{publicZi(){super();System.out.println(Zi类空参数构造方法);}publicZi(int num){super();System.out.println(Zi类带参数构造方法);}}okk, 看懂了执行流程之后, 新的问题来了, 我们知道学习这个细节, 对代码有什么帮助呢 ?  答案是 : 子类将来可以把一部分数据, 交给父类初始化了  我们来看一段代码publicclassPerson{privateString name;privateint age;publicPerson(){}publicPerson(String name,int age){this.name name;this.age age;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age age;}} java publicclassStudentextendsPerson{privatedouble score;publicStudent(){}publicStudent(String name,int age,double score){super(name, age);this.score score;}publicdoublegetScore(){return score;}publicvoidsetScore(double score){this.score score;}publicvoidstudy(){System.out.println(姓名为super.getName(), 年龄为super.getAge(), 成绩为 score 分的学生, 正在学习Java);}}java publicclassExtendsTest2{publicstaticvoidmain(String[] args){Student stu newStudent(李四,24,100);stu.study();}}在上述代码中, 我们可以发现, main方法中 , 创建学生对象, 我们给了 3个参数, 先执行子类的带参数构造方法。  其中前两个数据, 我们通过super, 交给了父类初始化, 最后一个成绩数据, 父类没有, 子类自己完成了初始化。publicStudent(String name,int age,double score){// 李四, 24, 100super(name, age);// 李四, 24 交给父类this.score score;// 100 子类自己初始化}配合一张内存图 , 大家再看一下  这里我们可以发现, 堆内存的对象中, 会存在一个 super 区域, 专门存放父类的成员。  所以, 前两个数据, 父类中有, 就交给父类初始化, 最后一个数据, 父类没有, 子类就自己完成初始化。  6. this 和 super  上述文章中, 我们其实关于 this 和 super 做了很多使用了, 接下来我们来梳理下  this代表本类对象的引用  super代表父类存储空间的标识(可以理解为父类对象引用)
http://www.w-s-a.com/news/223231/

相关文章:

  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知
  • 网站开发外包计入什么科目怎样申请网站空间
  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧