抽象类、接口

来源:互联网 发布:二进制指数退避算法 编辑:程序博客网 时间:2024/06/05 22:35
多态总结:
1.使用父类类型的引用指向子类的对象
2.该引用只能调用父类中定义的方法,不能调用子类中独有的方法
3.如果子类中重写了父类的一个方法,那么在调用该方法的时候,
  将会调用子类中的这个方法
4.在多态中,子类可以调用父类中的所有方法
5.多态主要体现为重载和重写。相同的行为不同的实现方式
6.多态主要应用为多态参数和多态集合
如果一个方法中有父类变量做为参数类型,就意味着可以给该方法传递任何一个子类对象


如果一个类中的方法,只有方法定义,没有方法具体实现,那么该方法就成为抽象方法。
而拥有抽象方法的类叫抽象类,用关键字abstract定义。抽象类不能直接实例化,
如果要实例化抽象类,那么抽象类变量需要指向子类对象。


抽象类中,可以定义抽象方法,也可以定义具体方法。如果一个类继承抽象类,
那么必须重写抽象类中定义的所有抽象方法。


抽象方法定义的意义在于,使用父类变量指向子类对象时,可以对抽象方法进行调用


接口是一种行为的抽象。接口可以看做是抽象类的特例。抽象类中可以有抽象方法,
可以有具体方法。但接口中只能有抽象方法。
定义接口使用interface。实现接口使用implements。
接口中定义的方法都是抽象方法,修饰符为public abstract。即是缺省,也是公共的抽象方法。


如果一个方法参数为接口类型,意味着可以传递该接口的任何实现类对象。


接口中可以定义变量,其修饰符是public static final
接口可以继承接口。同时可以多继承接口。一个类实现一个接口,不但要实现该接口中定义的
抽象方法,而且要实现该接口父接口中定义的抽象方法


抽象类和接口的区别:
1.抽象类和接口都不能直接实例化
2.抽象类中可以有抽象方法,也可以有具体方法。但接口中只能有抽象方法。
3.抽象类中定义的变量是普通属性。但接口中定义的变量是公共的静态的常量
4.一个类只能继承一个抽象类,但可以实现多个接口。


一个类实现一个接口,可以不完全实现接口中定义的抽象方法,但这个类只能是抽象类。
同样,一个类继承一个抽象类,也可以不实现抽象类中定义的抽象方法,这个类也必须是抽象类。
0 0
原创粉丝点击