Java内部类模拟实现多继承
2015-08-20 09:20
561 查看
package com.test;
/**
* 橡皮类
* */
public abstract class Eraser {
public abstract void erase();
}
package com.test;
/**
* 铅笔类
* */
public abstract class Pencil {
public abstract void wirte();
}
package com.test;
/**
* 做一个既有铅笔功能又有橡皮擦功能类
* (用接口完全可以实现,这里只是假设这种情况,模拟多继承)
* */
public class PencilWithEraser{
private MyPencil pencil = new MyPencil();
private MyEraser eraser = new MyEraser();
/**
*
* 继承了铅笔的功能
*
* */
private class MyPencil extends Pencil{
@Override
public void wirte() {
System.out.println("use to wirte");
}
}
/*写一个既有笔功能又有橡皮侧功能的类
**/
private class MyEraser extends Eraser {
@Override
public void erase() {
System.out.println("use to erase");
}
}
/*
* 本类自己的方法
* */
public void wirte(){
pencil.wirte();
}
public void eraser(){
eraser.erase();
}
}
测试类
package com.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PencilWithEraser pencilWithEraser = new PencilWithEraser();
pencilWithEraser.wirte();
pencilWithEraser.eraser();
}
}
这个类既有笔又有橡皮擦功能了。模拟实现了Java多继承。
package com.test;
/**
* 橡皮类
* */
public abstract class Eraser {
public abstract void erase();
}
package com.test;
/**
* 铅笔类
* */
public abstract class Pencil {
public abstract void wirte();
}
package com.test;
/**
* 做一个既有铅笔功能又有橡皮擦功能类
* (用接口完全可以实现,这里只是假设这种情况,模拟多继承)
* */
public class PencilWithEraser{
private MyPencil pencil = new MyPencil();
private MyEraser eraser = new MyEraser();
/**
*
* 继承了铅笔的功能
*
* */
private class MyPencil extends Pencil{
@Override
public void wirte() {
System.out.println("use to wirte");
}
}
/*写一个既有笔功能又有橡皮侧功能的类
**/
private class MyEraser extends Eraser {
@Override
public void erase() {
System.out.println("use to erase");
}
}
/*
* 本类自己的方法
* */
public void wirte(){
pencil.wirte();
}
public void eraser(){
eraser.erase();
}
}
测试类
package com.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PencilWithEraser pencilWithEraser = new PencilWithEraser();
pencilWithEraser.wirte();
pencilWithEraser.eraser();
}
}
这个类既有笔又有橡皮擦功能了。模拟实现了Java多继承。
相关文章推荐
- 牛人告诉你怎样学Java才是硬道理
- spring—mvc中controller获取html中的username以及password
- Java性能优化(2):使用私有构造函数强化singleton属性
- 浙大Java进阶mooc第二周作业---------有秒针计时的数字时钟
- 深入理解Java:注解(Annotation)自定义注解入门(转)
- Spring MVC配置事项
- MyEclipse 6.5 代码自动提示功能配置教程
- SpringMVC + Mybatis + Shiro + ehcache时缓存管理器报错。
- Java8新特性浅析
- Java7的那些新特性
- Java7的那些新特性
- java 类型自动提升
- Java - 判断元音辅音
- 多线程并发库高级应用 之 java5中的线程并发库--线程池、Callable&Future
- struts开发步骤
- 《Java设计模式》之策略模式
- 《Java设计模式》之状态模式
- Java - Thinking in Java 第7章 习题
- Java编程服务
- 【8-19】java学习笔记01