接口 对象=new 实现类 父类 对象=new 实现类

接口 对象=new 实现类
父类 对象=new 实现类
好处:减少开发过程中代码的修改量
定义一个animal抽象类, 里面有两个方法。
接下里定义两个类(cat和dog)去继承animal,cat和dog分别重写了animal中的方法。
我们在调用dog里面的方法之后,想修改为调用cat的方法。
只需要将Animal animal=new Dog()改成Animal animal=new Cat(), 只改变了一个对象。接着继续调用animal.sing(),animal.run()。

interface People{
   void peopleList();
}
class Student implements People{
    public void peopleList(){
        System.out.println("I’m a student.")}
}
class Teacher implements People{
    public void peopleList(){
        System.out.println("I’m a teacher.");
    }	
}
public class Example{
    public static void main(String args[]){
	   People a;             //声明接口变量
	   a=new Student();      //实例化,接口变量中存放对象的引用
	   a.peopleList();        //接口回调
	   a=new Teacher();     //实例化,接口变量中存放对象的引用
	   a.peopleList();       //接口回调
    }
}
结果:
I’m a student.
I’m a teacher.
 
例子参考:https://zhidao.baidu.com/question/1923748969384870227.html

需要注意的是这种写法的对象只能调用其接口中的方法。
例如:LinkedList实现了Deque接口与list接口,其中removeLast();为Deque接口的方法,则List<Integer> list = new LinkedList<>();中list无法调用removeLast();


https://blog.csdn.net/weixin_44769957/article/details/110000881

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值