JAVA 学习之extens和implements的用法
来源:互联网 发布:linux vi 序号 编辑:程序博客网 时间:2024/06/03 18:21
理解继承是理解面向对象程序设计的关键。在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。在Java中不允许多继承。
(1)继承
- class Animal{
- void eat(){
- System.out.println("Animal eat");
- }
- void sleep(){
- System.out.println("Animal sleep");
- }
- void breathe(){
- System.out.println("Animal breathe");
- }
- }
- class Fish extends Animal{
- }
- public class TestNew {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Animal an = new Animal();
- Fish fn = new Fish();
- an.breathe();
- fn.breathe();
- }
- }
在eclipse执行得:
Animal breathe!
Animal breathe!
.java文件中的每个类都会在文件夹bin下生成一个对应的.class文件。执行结果说明派生类继承了父类的所有方法。
(2)覆盖
- class Animal{
- void eat(){
- System.out.println("Animal eat");
- }
- void sleep(){
- System.out.println("Animal sleep");
- }
- void breathe(){
- System.out.println("Animal breathe");
- }
- }
- class Fish extends Animal{
- void breathe(){
- System.out.println("Fish breathe");
- }
- }
- public class TestNew {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Animal an = new Animal();
- Fish fn = new Fish();
- an.breathe();
- fn.breathe();
- }
- }
执行结果:
Animal breathe
Fish breathe
在子类中定义一个与父类同名,返回类型,参数类型均相同的一个方法,称为方法的覆盖。方法的覆盖发生在子类与父类之间。另外,可用super提供对父类的访问。
implements 也是实现父类和子类之间继承关系的关键字,如类 A 继承 类 B 写成 class A implements B{}.
这是百度百科上的解释:
implements是一个类实现一个接口用的 关键字 ,他是用来实现接口中定义的抽象方法。比如:people是一个接口,他里面有say这个方法。public interface people(){ public say();}但是接口没有方法体。只能通过一个具体的类去实现其中的方法体。比如chinese这个类,就实现了people这个接口。 public class chinese implements people{ public say() {System.out.println("你好!");}}
与Extends的不同
extends, 可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。
implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改implements,只定义接口需要具体实现,或者可以被修改扩展性好,用extends。
记得张老师的视频中这样讲到:若同时用到 extends 和 implements 的时候,extends 必须放在 implements 关键字之前。如 : class A extends B implements C.
以后学习中有更深的理解会不断完善的。
- JAVA 学习之extens和implements的用法
- JAVA 学习之implements的用法
- JAVA 学习之implements的用法
- java 的 extends 和implements
- java基础学习——extends 和 implements 的区别
- Java入门学习-理解float,double,unsigned,long,short,final,extends,implements的用法。
- Java中extends 和implements的区别
- java中extends和implements的区别
- java中extends和implements的区别
- java - extends 和 implements 的区别
- java中extends和implements的区别
- java中extends和implements的区别
- Java中extends和implements的区别
- Java中implements和extends的小记
- Java中extends和implements的区别
- java中extends和implements的不同
- java extend 和 implements 的区别
- Java之implements
- 第4次c++上机作业
- C++类的静态成员
- NSInvocation使用实例
- C++第三次上机实验
- retrofit 2.0.2 全路径写法
- JAVA 学习之extens和implements的用法
- Soot学习总结
- .Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法
- kali更新2.0发现以前的源不能用解决方案
- eclispe 快捷键大全
- RPCA图像处理中的矩阵重建算法及其应用
- actionbar
- pycaffe学习
- performSelector最多只能传两个参数