继承,多态
来源:互联网 发布:开票产品利润算法 编辑:程序博客网 时间:2024/05/19 14:52
转换类
接口
interface Converter { void convert();}
实现类(父类)
class SuperConverter implements Converter { public void convert() { System.out.println("SuperConverter - convert"); }}
实现类(子类)
class SubConverter extends SuperConverter { public void convert() { System.out.println("SubConverter - convert"); }}
控制器类
实现类(父类)
class SuperFacade { public Converter converter; public void execute() { getConverter().convert(); } public void setConverter(Converter converter) { this.converter = converter; } public Converter getConverter() { System.out.println("SuperFacade - getConverter"); return converter; }}
实现类(子类)
class SubFacade extends SuperFacade { public Converter converter; public void execute() { getConverter().convert(); } public void setConverter(Converter converter) { this.converter = converter; } public Converter getConverter() { System.out.println("SubFacade - getConverter"); return converter; }}
测试类
public class Test { public static void main(String[] args) { SubFacade _sub1 = new SubFacade(); _sub1.setConverter(new SuperConverter()); _sub1.execute(); SubFacade _sub2 = new SubFacade(); _sub2.setConverter(new SubConverter());//改变了super class的属性值 _sub2.execute(); }}
输出结果
D:\>javac Test.javaD:\>java TestSubFacade - getConverterSuperConverter - convertSubFacade - getConverterSubConverter - convert
控制器类
父类
class Super { public void doSth1() { System.out.println("Super - do something 1"); } public void doSth2() { System.out.println("Super - do something 2"); }}
子类
class Sub extends Super { public void doSth1() { System.out.println("Sub - do something 1"); } public void doSth3() { System.out.println("Sub - do something 3"); }}
测试类
public class Test { public static void main(String[] args) { Object obj = new Integer(1); System.out.println(obj.getClass()); System.out.println("\n"); Super _super = new Super(); _super.doSth1(); _super.doSth2(); System.out.println("\n"); Sub _sub = new Sub(); _sub.doSth1(); _sub.doSth3(); System.out.println("\n"); _super = new Sub(); _super.doSth1(); _super.doSth2(); //_super.doSth3(); //编译期间会提示找不到该方法 System.out.println("\n"); _sub = (Sub)_super; _sub.doSth1(); _sub.doSth2(); _sub.doSth3(); }}
输出结果
D:\>javac Test.javaD:\>java Testclass java.lang.IntegerSuper - do something 1Super - do something 2Sub - do something 1Sub - do something 3Sub - do something 1Super - do something 2Sub - do something 1Super - do something 2Sub - do something 3
控制器类
父类
class Super { public void doSth() { doOther(); } public void doOther() { System.out.println("Super - do other"); }}
子类
class Sub extends Super { public void doOther() { System.out.println("Sub - do other"); }}
测试类
class Test { public static void main(String[] args) { Sub _sub = new Sub(); _sub.doSth(); }}
输出结果
D:\>javac Test.javaD:\>java TestSub - do other
阅读全文
0 0
- 继承 & 多态
- 多态&继承
- 继承、多态
- 继承-多态
- 多态, 继承
- 继承 多态
- 继承&多态
- 继承 多态
- 多态,继承
- 继承,多态
- 继承、多态
- 多态,继承
- 继承&多态
- 继承,多态
- 继承&多态
- 继承&&多态
- 继承,菱形继承,多态,虚继承、菱形虚拟继承
- 继承,菱形继承,多态,虚拟继承,多虚拟继承,菱形虚拟继承
- Oracle(ALL
- 问答法学习单例模式
- php7.0.8 + Apache2.4 + MySQL5.7.13 + phpMyAdmin4.6.3
- DBA--创建索引
- 增加切片层级
- 继承,多态
- HDU
- 内部类
- C++多态的原理
- 使用clipboard.js复制示例
- Andrew Ng 深度学习课程Deeplearning.ai 编程作业——forward and backward propagation(1-4.1)
- 谈判技巧
- JQuery动态生成Table表格
- Open-Source iOS Apps