好几次都想起这个问题,每次想到都要脑子里面就要思考一番
今天就做一个小笔记
拿百度上的一个例子
父类A,子类B
A a=new B();
①加入A是一个接口或者抽象类,那么不可以创建对象,用起引用去指向其他子类或实现类来创建对象是可以的
具体来说,假如一个类需要实现各种水果,香蕉,苹果等,有共同的方法eat()
就必须给每一个类写一个方法
public void eat(Banana banana)
public void eat(Apple apple)
.....
但是把方法写成:
public void eat(Fruit fruit)
只要是继承了Fruit 或者实现了Fruit接口都可以作为这个eat方法的参数,大大简化了编程
②A a = new B() ;
上面这位朋友的例子来说,
a是父类的引用,指向了一个子类对象
好处是:
以后如果一旦发现该B对象无法适应 当前环境,可以转换成父类中的其它对象。
即:A a=new C()这里改了之后,其他的代码不需做更改了