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

如何写网站建设实验结果分析网站建设公司一年多少钱

如何写网站建设实验结果分析,网站建设公司一年多少钱,用友erp管理软件系统,Wordpress搜索html页面懵逼树上懵逼果#xff0c;懵逼树下你和我 第一题 [单选题] A派生出子类B#xff0c;B派生出子类C#xff0c;并且在java源代码中有如下声明#xff1a; 1 2 3 A a0new A(); A a1new B(); A a2new C(); 以哪个说法是正确的 A第1行#xff0c;第2行和第3行的声明都是正…懵逼树上懵逼果懵逼树下你和我 第一题 [单选题] A派生出子类BB派生出子类C并且在java源代码中有如下声明 1 2 3 A a0new A(); A a1new B(); A a2new C(); 以哪个说法是正确的 A第1行第2行和第3行的声明都是正确的B第1,2,3行都能通过编译但第2,3行运行时出错 C第1,2行能通过编译但第3行编译出错 D只有第1行能通过编译 首先看到这个题本人的确是有点懵逼的我想着这玩意是选c吧第一行代码肯定没得问题 然后第二行不是一个上转型对象也是可以操作的。第三行也太秀了趴中间跨了一个类直接再来哥上转型这玩意肯定是有问题的。果断选c然而很显然我错了当然看了一眼答案 然后我看看别人的解析 多说不说打开了自己的idea 按照要求来 public class A { }public class B extends A { }public class C extends B { }public class D {public static void main(String[] args){A a1new A();A a2new B();A a3new C();} }事实证明没有报错又回去看看上转型对象 向上转型 我们在现实中常常这样说这个人会唱歌。在这里我们并不关心这个人是黑人还是白人是成人还是小孩也就是说我们更倾向于使用抽象概念“人”。再例如麻雀是鸟类的一种(鸟类的子类)而鸟类则是动物中的一种(动物的子类)。我们现实中也经常这样说麻雀是鸟。这两种说法实际上就是所谓的向上转型通俗地说就是子类转型成父类。这也符合Java提倡的面向抽象编程思想。 public class A { public void a1() { System.out.println(Superclass); } } public class B extends A { public void a1() { System.out.println(Childrenclass); //覆盖父类方法 } public void b1(){} //B类定义了自己的新方法 } public class C { public static void main(String[] args) { A a new B(); //向上转型 a.a1(); } } 如果运行C输出的是Superclass 还是Childrenclass?不是你原来预期的Superclass而是Childrenclass。这是因为a实际上指向的是一个子类对象。当然你不用担心Java虚拟机会自动准确地识别出究竟该调用哪个具体的方法。不过由于向上转型a对象会遗失和父类不同的方法例如b1()。有人可能会提出疑问这不是多此一举吗?我们完全可以这样写 B a new B(); a.a1(); 确实如此!但这样就丧失了面向抽象的编程特色降低了可扩展性。其实不仅仅如此向上转型还可以减轻编程工作量。来看下面的显示器类Monitor public class Monitor{ public void displayText() {} public void displayGraphics() {} } 液晶显示器类LCDMonitor是Monitor的子类 public class LCDMonitor extends Monitor { public void displayText() { System.out.println(LCD display text); } public void displayGraphics() { System.out.println(LCD display graphics); } } 阴极射线管显示器类CRTMonitor自然也是Monitor的子类 public class CRTMonitor extends Monitor { public void displayText() { System.out.println(CRT display text); } public void displayGraphics() { System.out.println(CRT display graphics); } } 等离子显示器PlasmaMonitor也是Monitor的子类 public class PlasmaMonitor extends Monitor { public void displayText() { System.out.println(Plasma display text); } public void displayGraphics() { System.out.println(Plasma display graphics); } } 现在有一个MyMonitor类。假设没有向上转型MyMonitor类代码如下 public class MyMonitor { public static void main(String[] args) { run(new LCDMonitor()); run(new CRTMonitor()); run(new PlasmaMonitor()); } public static void run(LCDMonitor monitor) { monitor.displayText(); monitor.displayGraphics(); } public static void run(CRTMonitor monitor) { monitor.displayText(); monitor.displayGraphics(); } public static void run(PlasmaMonitor monitor) { monitor.displayText(); monitor.displayGraphics(); } } 可能你已经意识到上述代码有很多重复代码而且也不易维护。有了向上转型代码可以更为简洁 public class MyMonitor { public static void main(String[] args) { run(new LCDMonitor()); //向上转型 run(new CRTMonitor()); //向上转型 run(new PlasmaMonitor()); //向上转型 } public static void run(Monitor monitor) { //父类实例作为参数 monitor.displayText(); monitor.displayGraphics(); } } 我们也可以采用接口的方式例如 public interface Monitor { abstract void displayText(); abstract void displayGraphics(); } 将液晶显示器类LCDMonitor稍作修改 public class LCDMonitor implements Monitor { public void displayText() { System.out.println(LCD display text); } public void displayGraphics() { System.out.println(LCD display graphics); } } CRTMonitor、PlasmaMonitor类的修改方法与LCDMonitor类似而MyMonitor可以不不作任何修改。 可以看出向上转型体现了类的多态性增强了程序的简洁性。 向下转型 子类转型成父类是向上转型反过来说父类转型成子类就是向下转型。但是向下转型可能会带来一些问题我们可以说麻雀是鸟但不能说鸟就是麻雀。来看下面的例子 public class A { void aMthod() { System.out.println(A method); } } A的子类B public class B extends A { void bMethod1() { System.out.println(B method 1); } void bMethod2() { System.out.println(B method 2); } } C类 public class C { public static void main(String[] args) { A a1 new B(); // 向上转型 a1.aMthod(); // 调用父类aMthod()a1遗失B类方法bMethod1()、bMethod2() B b1 (B) a1; // 向下转型编译无错误运行时无错误 b1.aMthod(); // 调用父类A方法 b1.bMethod1(); // 调用B类方法 b1.bMethod2(); // 调用B类方法 A a2 new A(); B b2 (B) a2; // 向下转型编译无错误运行时将出错 b2.aMthod(); b2.bMethod1(); b2.bMethod2(); } } 从上面的代码我们可以得出这样一个结论向下转型需要使用强制转换。运行C程序控制台将输出 Exception in thread main java.lang.ClassCastException: a.b.A cannot be cast to a.b.B at a.b.C.main(C.java:14) A method A method B method 1B method 2 其实黑体部分的向下转型代码后的注释已经提示你将发生运行时错误。为什么前一句向下转型代码可以而后一句代码却出错?这是因为a1指向一个子类B的对象所以子类B的实例对象b1当然也可以指向a1。而a2是一个父类对象子类对象b2不能指向父类对象a2。那么如何避免在执行向下转型时发生运行时ClassCastException异常?我们修改一下C类的代码 A a2 new A(); if (a2 instanceof B) { B b2 (B) a2; b2.aMthod(); b2.bMethod1(); b2.bMethod2(); } 这样处理后就不用担心类型转换时发生ClassCastException异常了。 所以答案为A 文章仅个人理解来在各大网站。如有不合理之处欢迎吐槽。 阅读目录置顶)(长期更新计算机领域知识https://blog.csdn.net/weixin_43392489/article/details/102380691 阅读目录置顶)(长期更新计算机领域知识https://blog.csdn.net/weixin_43392489/article/details/102380882 阅读目录置顶)(长期科技领域知识https://blog.csdn.net/weixin_43392489/article/details/102600114 歌谣带你看java面试题 https://blog.csdn.net/weixin_43392489/article/details/102675944
http://www.pierceye.com/news/993144/

相关文章:

  • 销售网站怎么做一个公司可以做多少网站
  • 西安旅游攻略必去景点网站优化成都哪里好
  • 网站特色泉州做网站优化价格
  • 小米官方网站开发版在哪里推进门户网站建设 用好用活
  • 玉器企业网站源码软件商店哪个好用
  • 学校网站建设的安全策略江苏太平洋建设集团官方网站
  • 织梦做中英文企业网站给特宝网站商家网址怎样做
  • 网站邮箱接口怎么设置WordPress国外主机
  • 西安做网站的公司哪家好怎么样查询网站被挂黑链
  • 卯兔科技网站建设河南旅游集团 网站建设
  • 重庆网站建设c做食品网站的素材
  • 网站如何制作的简单的管理系统有哪些
  • 职高网站建设知识点一个人开发一个网站需要多久
  • c 做的网站怎么上传博客 选择 WordPress
  • dw可以做有后台的网站么?泰安抖音seo
  • 龙岗网站建设 信科网络网站备案后要做什么
  • 深圳建立网站公司网站公众号开发一般收费
  • 网站建设要做什么有关网站建设的书
  • 网站前台开发由什么做的seo网络贸易网站推广
  • 网站设计与开发范本wordpress 左图右文
  • 网站后台的搭建seo网站推广教程
  • 长春做网站的公司男生怎么找的小资源
  • 在线课程网站建设规范甘肃手机版建站系统信息
  • 自定义网站模板中国进出口企业名录
  • 晟合建设集团网站高中文凭能学做网站吗
  • 黑色网站模板建筑工程查询网
  • 建设网站jw100有哪些做鞋机设备的网站
  • 模仿网站建设大学生网站设计论文范文
  • 浙江杭州网站建设服务公司哪家好社区推广经验做法
  • 牟平网站制作公司天安云谷网站建设