基于接口的多态

继承的多态是通过重写父类一个方法的几个不同子类来实现的,同样的道理,基于接口的多态可以通过实现接口覆盖接口中对应方法的几个不同的类来实现,一样的,接口类型的引用指向了实现该接口的一个类实例对象,通过对象引用来执行对应的方法

与继承多态类似,来一个例子

interface Interest {
    public void love();
    public void hate();
}

c[......]

Read more

抽象类和方法

之前基于继承的多态,可以看出来父类并没有被实例化,而且成员方法也可以没有实体也就是函数体,只需要父类类型引用指向各个子类对象,通过子类方法的覆盖就可以达到调用方法的目的,回头看下之前的例子,父类Book有三种各异的方法,又是chinese,又是english和maths,如果从属性的角度考虑,这到底是本神马书?因此一般来说,这个父类用来被继承和产生多态,可以避免让它进行初始化,也就是没法new出来[……]

Read more

基于继承的多态

继承是对于存在IS-A关系的类之间的一种关系,子类可以重用父类的属性和方法,此时比较关键的引用的类型和对象的类型是一致的,比如

Book book = new Book();

 这里两者的类型都是Book,可假如我有更多细致的分类,比如语文书,英文书,数学书,显然它们都是Book,可以理解成都继承Book类,但各自有各自的特点,比如语文书里都是古诗词,英文书各种hello world,数学书都[……]

Read more