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

学生成绩管理系统网站建设网页制作三剑客是哪些

学生成绩管理系统网站建设,网页制作三剑客是哪些,网站设计素材网站推荐,wordpress建站页面文章目录 前言 一、多态的概念 二、向上转型和向下转型 2.1 向上转型 2.2 什么是向上转型 2.3 三种常见的向上转型 2.3.1 直接赋值 2.3.2 作为方法的参数 2.3.3 作为方法的返回值 2.4 向下转型#xff08;这个了解即可#xff09; 三、方法重写 3.1 方法重写的… 文章目录 前言 一、多态的概念 二、向上转型和向下转型  2.1 向上转型 2.2 什么是向上转型 2.3 三种常见的向上转型 2.3.1 直接赋值 2.3.2 作为方法的参数 2.3.3 作为方法的返回值  2.4 向下转型这个了解即可 三、方法重写  3.1 方法重写的概念 3.2 方法重写的规定  3.3 在IDEA中使用重写的快捷方式 3.4 方法重写中所要注意的细节 四、多态  4.1 什么是多态 4.2 多态产生的前提 五、理解多态含义 六、多态的优缺点 6.1 使用多态的好处 6.2 多态的缺点 七、避免在构造方法中调用重写的方法 总结 前言 今天我们将进入到多态的学习在上一章中我们学习了有关继承的概念今天我们学习Java的第二个重要特性多态本节内容也十分重要我们应该认真学习并且掌握 一、多态的概念 多态从语文的层次上来说一种事务多种形态这句话不算对但也不算错 但是我们需要从程序的角度上来介绍去完成某个行为当不同的对象去完成时会产生不同的状态这就是多态。 举例说明 比如说如下图所示同样是一个打印机去打印相同的照片但是交给彩色打印机打印出来的就是彩色的照片交给黑白打印机打印出来的就是黑白照片它们完成的动作都是“打印”这就是一种多态 再比如说如下图所示去“吃饭”对于小猫来说吃的是“猫粮”但对于小狗来说吃的确是“狗粮”他们完成的都是“吃饭”这个行为但是却“吃出不同的结果来” 这也是一种多态                                                                                                                                                                                                          总的来说同一件事情发生在不同的对象上会产生不同的结果。  总结 那么要想真正了解多态我们还是需要从三个方面来介绍 什么是向上转型什么叫做方法重写了解了前两个我们才会真正了解什么是多态。下面我们依次介绍 二、向上转型和向下转型  2.1 向上转型 2.2 什么是向上转型 首先介绍一段平平常常的继承代码 package Demo1; class Animal {public String name;public int age;public void eat() {System.out.println(this.name吃饭);} }class Cat extends Animal {public String hair;public void mew() {System.out.println(this.name正在叫!);} }public class TestDemo1 {public static void main(String[] args) {Cat cat new Cat();cat.mew();} }   那么如果现在抛开 继承 不谈直接用Animal类 new一个animal对象可以发现animal对象访问不了Animal类 里面没有的成员变量 或成员方法 接下来可以来讲一讲 向上转型 的知识了        这里的 上 指的是 父类那么 下 指的就是 子类 那么把子类给父类是什么意思呢 //即定义类一个 cat//可以用animal来接收//也就是说父类的引用 可以用来引用 子类的对象Cat cat new Cat();Animal animal cat;//也就是说上面的两行代码可以合并成下面一行代码Animal animal new Cat();//此时父类的引用 引用了 子类的对象我们把这个就叫做 向上转型 但是此时又有一个新的问题        animal的类型是Animal那么 此时它只能去访问 类Animal 的成员变量和方法去访问 子类Cat的成员变量或方法的时候会报错 【总结】 向上转型把原来的 子类的类型 转换成了 父类的类型那么就只能去访问 父类特有的成员方法或者成员变量。 2.3 三种常见的向上转型 2.3.1 直接赋值 所谓直接赋值就是 上面的直接把 子类对象 给 父类 进行引用 /*Cat cat new Cat();Animal animal cat;*/Animal animal new Cat(); 2.3.2 作为方法的参数 2.3.3 作为方法的返回值 2.4 向下转型这个了解即可 前面已经介绍过 向上转型那么 现在来介绍一下 向下转型 不过现在来执行一下这样的操作  此时运行结果 但是向下转型不安全不介意使用向下转型   我们还需要做以下修改 以保证其安全性 【注意】   三、方法重写  由上面可知父类引用引用了子类的对象但是在现实生活中猫是吃猫粮的 那么如果想改的话肯定不可以在父类上面进行修改的毕竟可能还有 其他的子类 来继承父类 那么如果想修改的话就需要在子类里面重新取实现一遍这个方法的  然后我们来对比一下 实现前后的结果 没有在子类里面写eat方法  在子类里面写了eat方法                                                                                                                                                                                                        这是怎么回事呢 这就是马上所要介绍的方法重写。 3.1 方法重写的概念 重写也称为覆盖 重写是子类对父类 非静态、非private修饰、非final修饰、非构造方法 等的实现过程进行重新编写 重写的好处是子类可以根据需要定义特定的属于自己的行为如 上面的猫可以吃猫粮狗可以吃狗粮。 3.2 方法重写的规定  方法重写满足以下三个条件 方法的名称相同方法的返回值相同方法的参数列表相同。当在子类 方法重写以后那么就会调用的是 子类重写的内容。 我们把这个现象叫做动态绑定这是多态的基础        在上面所示例中        在编译的时候调用的还是 父类Animal的eat方法        但是在运行的时候变成了子类Cat自己的eat方法        因此动态绑定又称为 运行时绑定        即在程序运行的时候才知道要调用谁。 当然有了 动态绑定那肯定也有 静态绑定   在编译期间就已经知道了 要调用的是谁比如说 重载。 3.3 在IDEA中使用重写的快捷方式 当然在使用IDEA编译器的时候 重写不仅仅可以直接在子类上手敲出来的上面的就是而且还可以使用快捷键的方式 快捷键步骤; 3.4 方法重写中所要注意的细节 1.静态方法static修饰是构成不了重写的                                                                                                                                                                                                         2.private修饰 的方法不能进行重写                                                                                                                                                    3.如果要进行重写的话那么 子类的 访问限定修饰符的权限 一定 大于等于 父类的访问限定修饰符  访问限定符权限大小比较 private default peotected public                                                                                                                                                                                                           4.被final修饰的方法不可以进行重写                                                                                                                                                   5. 子类和父类在同一个包中那么子类可以重写父类的所有方法除了 声明为private和final的方法子类和父类不在同一个包那么子类只能够 重写父类的 声明为public和protected的非final的方法即 默认权限方法/包访问权限 不可以被重写6.重写的方法可以使用 Override 注解来显示指定有了这个注解 可以帮助我们进行一些合法性校验如 不小心把方法名字写错了写成ate那么此时编译器就会发现父类中没有ate方法就会编译报错提示无法构成重写。 四、多态  4.1 什么是多态 类的实现者所写的代码 class Animal {public String name;public int age;public void eat() {System.out.println(this.name吃饭父类Animal);} }class Cat extends Animal {public String hair;public void eat(){System.out.println(this.name吃猫粮);}public void mew() {System.out.println(this.name正在叫!);} } class Dog extends Animal {public void eat(){System.out.println(this.name吃狗粮);} } 类的调用者所写的代码 public static void function(Animal animal) {animal.eat();}public static void main(String[] args) {Cat cat new Cat();Dog dog new Dog();function(cat);function(dog);} 所以运行之后得到的结果不一样                                                                                                                                                           从上面可以得到同一个方法当引用的对象不一样的时候这个方法所表现出来的行为是不一样的我们把这种思想就叫做 多态。  4.2 多态产生的前提 发生向上转型父类引用 引用子类的对象发生重写父类和子类当中 有同名的覆盖方法通过父类引用调用这个重写的方法此时会发生 动态绑定思想通过一个引用调用一个方法由于引用的对象不同所执行的行为也是不一样的我们把这种思想就叫做多态的思想。 五、理解多态含义 回顾一下多态 场景现在想画一个图形图形是未知的 首先创建父类 class Shape {//省略了长、宽、高等之类的属性public void draw(){System.out.println(画图形);}} 创建父类Shape只是画父类但是并没有说明画什么 现在想画各种各样的图形那么就可以去重写 Shape类里面的draw方法来满足自己的需求 class Cycle extends Shape {Overridepublic void draw() {System.out.println(○);} }class Rect extends Shape {Overridepublic void draw() {System.out.println( ⃟ );} }class Triangle extends Shape {Overridepublic void draw() {System.out.println(△);} } 前面两段代码都是类的实现者写的 当有一天作为用户、作为类的调用者 想要画出这些图形那么就可以这样来做 public static void drawMap(Shape shape) {shape.draw();}public static void main(String[] args) {Cycle cycle new Cycle();Rect rect new Rect();Triangle triangle new Triangle();drawMap(cycle);drawMap(rect);drawMap(triangle);} 那么根据引用的对象不一样draw方法所表现的行为就不一样 这个就叫做 多态。 代码示例结果 那么多态到底有什么好处呢 ——其拓展能力非常强 如果突然说现在想要画一朵花 那么只需要在这样做即可 class Flower extends Shape {Overridepublic void draw() {System.out.println(✿);} } 测试类添上这个来测试 drawMap(new Flower()); 代码示例结果 六、多态的优缺点 6.1 使用多态的好处 1能够降低代码的 圈复杂度 避免使用大量的 if-else语句  说白了可以简单粗暴的计算 一段代码中条件语句和循环语句 出现的个数这个个数就称为 圈复杂度如果一个方法的 圈复杂度 太高就需要考虑重构。 2可扩展能力强  就是上面所说的 添加了一朵花的 示例。 6.2 多态的缺点 代码的运行效率低。  七、避免在构造方法中调用重写的方法 class B {public B(){func();}public void func() {System.out.println(B.func() );} }class D extends B {D(){super();}Overridepublic void func() {System.out.println(D.func() );} }public class Test {public static void main(String[] args) {D d new D();} } 代码示例结果 【说明】 构造D对象的同时会调用B的构造方法B的构造方法中调用了 func方法此时会触发 动态绑定会调用到D中的 func【注意】最好尽量不要写类似的代码——避免在构造方法中调用重写的方法。 总结 今天我们关于Java多态的内容就介绍到这里到这里我们JavaSE的内容就结束了。一定要熟练掌握有关JavaSE的基础这是我们学习Java最基本的内容。
文章转载自:
http://www.morning.wbqt.cn.gov.cn.wbqt.cn
http://www.morning.wptdg.cn.gov.cn.wptdg.cn
http://www.morning.stph.cn.gov.cn.stph.cn
http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn
http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn
http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn
http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn
http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn
http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn
http://www.morning.iiunion.com.gov.cn.iiunion.com
http://www.morning.nhrkl.cn.gov.cn.nhrkl.cn
http://www.morning.dqkrf.cn.gov.cn.dqkrf.cn
http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn
http://www.morning.synlt.cn.gov.cn.synlt.cn
http://www.morning.c7496.cn.gov.cn.c7496.cn
http://www.morning.xpzkr.cn.gov.cn.xpzkr.cn
http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn
http://www.morning.wflsk.cn.gov.cn.wflsk.cn
http://www.morning.jlmrx.cn.gov.cn.jlmrx.cn
http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn
http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn
http://www.morning.tzzxs.cn.gov.cn.tzzxs.cn
http://www.morning.zdsdn.cn.gov.cn.zdsdn.cn
http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn
http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn
http://www.morning.uytae.cn.gov.cn.uytae.cn
http://www.morning.gwjnm.cn.gov.cn.gwjnm.cn
http://www.morning.zyytn.cn.gov.cn.zyytn.cn
http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn
http://www.morning.rbsxf.cn.gov.cn.rbsxf.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.rkck.cn.gov.cn.rkck.cn
http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn
http://www.morning.txzqf.cn.gov.cn.txzqf.cn
http://www.morning.skcmt.cn.gov.cn.skcmt.cn
http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn
http://www.morning.tqgx.cn.gov.cn.tqgx.cn
http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn
http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn
http://www.morning.nhzps.cn.gov.cn.nhzps.cn
http://www.morning.bhbxd.cn.gov.cn.bhbxd.cn
http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn
http://www.morning.nwzcf.cn.gov.cn.nwzcf.cn
http://www.morning.ntyanze.com.gov.cn.ntyanze.com
http://www.morning.cmzcp.cn.gov.cn.cmzcp.cn
http://www.morning.rrxnz.cn.gov.cn.rrxnz.cn
http://www.morning.gmswp.cn.gov.cn.gmswp.cn
http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn
http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn
http://www.morning.ychrn.cn.gov.cn.ychrn.cn
http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn
http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn
http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn
http://www.morning.rlwcs.cn.gov.cn.rlwcs.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.rckmz.cn.gov.cn.rckmz.cn
http://www.morning.pdgqf.cn.gov.cn.pdgqf.cn
http://www.morning.chrbp.cn.gov.cn.chrbp.cn
http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn
http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn
http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn
http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn
http://www.morning.ahscrl.com.gov.cn.ahscrl.com
http://www.morning.knmp.cn.gov.cn.knmp.cn
http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn
http://www.morning.chzqy.cn.gov.cn.chzqy.cn
http://www.morning.pfggj.cn.gov.cn.pfggj.cn
http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn
http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn
http://www.morning.qwqzk.cn.gov.cn.qwqzk.cn
http://www.morning.kgkph.cn.gov.cn.kgkph.cn
http://www.morning.brbmf.cn.gov.cn.brbmf.cn
http://www.morning.smmrm.cn.gov.cn.smmrm.cn
http://www.morning.lrdzb.cn.gov.cn.lrdzb.cn
http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn
http://www.morning.lmqfq.cn.gov.cn.lmqfq.cn
http://www.morning.hjrjy.cn.gov.cn.hjrjy.cn
http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn
http://www.tj-hxxt.cn/news/254720.html

相关文章:

  • 办公用品网站系统建设源码织梦模板添加网站地图
  • 南通物流网站建设专业网页制作网站推广公司
  • 网站建设模板怎么设计哪里可以做网站开发
  • 长沙的网站建设wordpress实现pdf浏览器
  • 自己做网站 需要会什么6wordpress云
  • 购物网站怎么做代码百度seo排名优化排行
  • 玄武模板网站制作品牌天津公司网站建设
  • 青岛中英网站建设中国做网站知名的公司
  • 微信公众号开发网站开发女生wordpress网站适合
  • 外贸建站推广多少钱外贸网站 推广
  • 站外推广免费网站帮别的公司做网站违法吗
  • 临清建网站百度的广告怎么免费发布
  • 东莞设计兼职网站建设宁波网站推广网站优化
  • 昌平最好的网站建设做家教中介 不建网站怎么做
  • 网站优化排名云南网站推广
  • 平顶山市湛河区建设局网站进一步加强区门户网站建设管理办法
  • 顺德佛山做app网站返利导购网站建设需求文档
  • 做h5的网站网站的设计与开发的图片
  • 网站的发布与推广方式展厅公司
  • 湘潭市高新建设局施工报建网站网站建设新际
  • 建设网站的十个步骤广州网站设计首选柚米
  • 站长工具高清无吗vps如何做网站步骤
  • 《网站建设与管理》方案wordpress 竞价页
  • 做公司网站域名怎么做记账凭证佛山网站优化
  • 2013我国中小企业接入互联网和网站建设情况网站首页动图怎么做
  • 住房和城乡建设部网站 事故快手极光视频小程序
  • 网站手册网址转短链接
  • 东莞房价排名佛山百度网站快速优化
  • 有没有专门做帽子的网站专门做任务的网站
  • 义乌网站制作河北邯郸房价