zoukankan      html  css  js  c++  java
  • 多态

    假设现在存在一个父接口A和一个子接口B.

    父接口A中有一个方法,子接口B中既有父接口的方法,又有自己的方法.

    因此,如果实例化的是父接口,则只能调用父接口中的那个方法.

    如果实例化的是子接口,则既能用父接口的方法,又能用子接口的方法.

    需要注意的是:如果接口被多继承,

    那么这个接口中的某个方法,其方法体是在不断变化的,

    变化的内容由继承这个接口的子类决定.(如这里的funcB方法)

    package prepare1;
    
    interface A {// 父接口
    	public void funcA();
    }
    
    interface B extends A {// 子接口
    
    	@Override
    	default void funcA() {
    		System.out.println("父接口的方法");
    
    	}
    
    	public void funcB();//这个方法的内容实际上是一直被变化的
    
    }
    
    class C implements B {
    
    	@Override
    	public void funcB() {
    		System.out.println("C类定义的子接口的方法");
    
    	}
    
    }
    
    class D implements B {
    
    	@Override
    	public void funcB() {
    		System.out.println("D类定义的子接口的方法");
    
    	}
    
    }
    
    public class Test {
    	public static void main(String[] args) {
    		A a1 = new C();//实例化A接口对象
    		B b1 = new C();//实例化B接口对象
    		
    		//A接口方法少,所以只能用一个
    		a1.funcA();
    		
    		//B接口方法多,故既能用父接口的方法,也能用自己新定义的方法
    		b1.funcA();
    		b1.funcB();
    		
    		
    		
    		A a2 = new D();
    		B b2 = new D();
    		
    		a2.funcA();
    		
    		b2.funcA();
    		b2.funcB();
    		
    
    	}
    }
    

      

  • 相关阅读:
    PYSpark DataFrame
    wheel用户组
    CURD是什么?
    mysql binlog日志清理
    skype的图片默认保存路径
    bootstrap使用总结
    库表批量新增id字段
    谷粒商城-问题汇总
    开发工具问题汇总
    feign客户端,参数无法传递复杂对象
  • 原文地址:https://www.cnblogs.com/ssC2H4/p/8529408.html
Copyright © 2011-2022 走看看