网站开发未按合同约定开发时间完工网站有什么作用
网站开发未按合同约定开发时间完工,网站有什么作用,有人拉我做彩票网站,wordpress 顶栏显示本文为原创#xff0c;如需转载#xff0c;请注明作者和出处#xff0c;谢谢#xff01;众所周之#xff0c;在任何面向对象的语言中#xff08;包括Java、C##xff09;#xff0c;在定义抽象类时必须使用abstract关键字。虽然这已经习已为常了#xff0c;但实际上ab…本文为原创如需转载请注明作者和出处谢谢 众所周之在任何面向对象的语言中包括Java、C#在定义抽象类时必须使用abstract关键字。虽然这已经习已为常了但实际上abstract是为了在实现接口或继承抽象类避免歧议而必须存在的。 看如下代码 abstract class Class1 { abstract void method(); } 上面的代码是一个典型的抽象类在定义类时和定义方法时都使用了abstract。但从编译器的角度来说在定义类时完全可以不使用abstract如下面的代码所示 class Class1 { abstract void method(); } 对于上面的代码编译器在编译时并不会产生奇异只要检测到类中有一个用abstract关键字的代码就可以在编译的过程中自动向Class1添加abstract也就是说在定义Class1时添加abstract的工作应该由编译器来完成。 虽然上面的过程看起来没什么问题也并不难实现但各位不要忘了实现抽象类除了上面的方式还有另外一种方式这就是实现接口而并不实现接口中的所有方法。看下面的代码 interface MyInterface { public void method1(); public void method2(); }abstract class MyClass implements MyInterface { public void method1() { } } 上面代码中MyClass类并未实现method2方法也并示在定义方法时使用abstract关键字然后method2方法实际上就是abstract方法。 大家可以想象如果在定义抽象类时不使用abstract关键字会怎么样呢看下面的代码 interface MyInterface { public void method1(); public void method2(); }class MyClass implements MyInterface { public void method1() { } } 上面的代码一定会编译出错的因为编译器蒙了。在面向对象语言中规定一个普通类必须实现接口中的所有方法。而在上面的代码中method2方法未实现。而编译器无法判断MyClass类是抽象类还是普通类。如果按着普通类来处理则会编译出错如果按着抽象类来处理则完全符合面向对象规则。因此就产生了歧议。当编译器在编译源代码时一定会产生错误否则可能会编译成和源代码的含义不同的二进制目标文件。 当然上面的代码也可以设置默认的规则也就是按着普通类处理不通过时就按着抽象类来处理。但这又会带来另一个问题。如果开发人员忘记实现某个接口的方法那不是这个类就会被编译器认为是抽象类了吗因此为了保险起见编译器的设计者特意为抽象类指定一个abstract关键字也就是说这个类是否是抽象类应由开发人员通过编码的方式来指定而不是由编译器自做主张。 从上面的描述可以看出加abstract关键字主要是为了避免普通类在实现接口时产生的歧议。如果假设面向对象语言中没有接口abstract关键字完全可以去掉。当然继承抽象类也和实现接口类似。 象面向对象语言中的静态方法很多就没有静态类的概念Java没有C#有。因此在定义类时加不加static并不会产生奇异所以static关键字在定义静态类时也就不是必须的了。 转载于:https://www.cnblogs.com/nokiaguy/archive/2008/09/30/1302482.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89539.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!