Aniaml.java
package cn.lonecloud.pojo;
/**
* Created by lonecloud on 2017/8/29.
*/
public interface Animal {
}
Dog.java
package cn.lonecloud.pojo;
/**
* Created by lonecloud on 2017/8/29.
*/
public class Dog implements Animal {
}
POJOTest.java
package cn.lonecloud;
import cn.lonecloud.pojo.Animal;
import cn.lonecloud.pojo.Dog;
/**
* Created by lonecloud on 2017/8/29.
*/
public class POJOTest {
public static void main(String[] args){
Animal dog1=new Dog();
Dog dog2=new Dog();
**System.out.println(dog1);//cn.lonecloud.pojo.Dog@266474c2
System.out.println(dog2);//cn.lonecloud.pojo.Dog@6f94fa3e**
}
}
楼主请看上面的代码
Aniaml.java创建了一个Animal的接口类
Dog.java创建了一个Dog类,该类对Animal的实现类。
POJOTest.java为测试类
请看两行加粗部分的代码
像楼主这样创建了两个类其后面输出韩式Dog类:
原因为
其实现了Dog类实现了Animal类
其实为面向接口编程
好处是:
统一定义接口,方便后期进行业务调用,让系统解耦
如果将改为
Aniaml.java
package cn.lonecloud.pojo;
/**
* Created by lonecloud on 2017/8/29.
*/
public class Animal {
}
Dog.java
package cn.lonecloud.pojo;
/**
* Created by lonecloud on 2017/8/29.
*/
public class Dog extends Animal {
}
则其为多态,
其为dog1相当于向上转型了,虽然自身为Dog类但是只拥有父类的方法
好处是:
减少重复代码,使代码变得简洁。
提高系统扩展性。