Java第五讲
-
如何实现两个对象之间互发消息?
通过对象引用的方法,创建两个类,两个类中都包含另一个类的成员。
-
谈谈组合与继承的区别以及两者的使用场景。
区别:组合与继承都是面向对象中代码复用的方式。继承中父类的内部细节对子类可见,而组合中对象之间的内部细节不可见。子类只能继承一个父类,而一个类可以与多个类进行组合,且无上下级关系。
使用场景:当只需要调用其他类的方法时用组合,当需要在一个类的基础上增加其他功能用继承。 -
Java中的运行时多态的含义是什么?
运行时多态:子类继承了父类的实例方法,运行时才确定是执行父类的方法还是子类继承的方法。
Animal a = new Cat();//Cat为Animal子类 a.run();//若Cat继承了Animal的run方法则执行Cat类,否则执行Animal类 Cat c = (Cat)a; c.eatFish();//a对象只能执行Animal和Cat继承Animal的方法,要执行Cat的特有方法必须强制向下转型
-
说明instanceof的使用方法。
运算符格式为:“a instanceof A”,其中a为对象的引用,A为类。
若a为A或A子类的实例,则返回true。
若a为A父类的实例,则返回false。
若a对象的类和A无任何关系,则编译不通过。 -
谈谈抽象类与接口的异同以及两者的使用场景。
共同点:两者都有抽象方法,都不能实例化,都有自己的声明,并能引用具体子类或实现类对象。
不同点:
属性:抽象类可以有域变量,接口只能有静态变量。
成员方法:抽象类可以有具体方法,且具体方法可以调用抽象方法,接口只能有抽象方法。
实现策略:抽象类必须有子类实现,且子类只能继承一个抽象类。接口必须有实现类实现,实现类可以实现多个接口,接口也可以继承多个接口。抽象类实现接口可以不实现接口的所有方法。
使用场景:抽象类强调继承,接口强调功能的实现。