A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丶唯萌Pro 中级黑马   /  2017-10-20 15:26  /  571 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口
        java语言的继承是单一继承,一个子类只能有一个父类
        java语言给我们提供了一种机制,用于处理继承单一的局限性,接口。
        接口:
                接口是一个比较抽象类还抽象的类,接口里的所有的方法全是抽象方法,接口和类的关系是
                实现,implements
        格式:
                interface 接口名{
                }
        接口的成员特点:
                只能有抽象方法
                只能有常量。
                默认使用public & abstract修饰方法
                只能使用public & abstract修饰方法
                默认使用public static final来修饰常量
        建议:
                建议手动的给上默认修饰符
        注意:
                接口不能实例化
                类与接口的关系是实现关系,一个类实现一个接口必须实现它的所有方法
        关系:
                类与类:继承关系,单一继承,多层继承
                类与接口:实现关系
                接口与接口:继承关系 多继承
                总结:相同之间为继承,不同之间为实现
        接口的思想:
               
        接口的优点:
                类与接口的关系:实现关系,而且是多实现,一个类可以实现多个接口
                类与类关系:继承关系,单一继承,一个类只能有一个父类
                优点1:打破了类与类之间单一继承的局限性。
                (USB接口)不管那个电脑的USB接口都一样。
                优点2:对外提供规则规范
                优点3:降低了程序的耦合性。(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)
        接口和抽象类的区别:
                共性:
                        不断的抽取,抽取出抽象的概念
                区别:
                        与类之间的关系
                                类与接口是实现关系,而且是多实现,一个类可以实现多个接口
                                类与抽象类是继承关系,java中的继承是单一继承,一个类只能有一个父类,java中的继承是多层继承
                        成员
                                成员变量
                                        抽象类可以有成员变量,也可以有常量;
                                        接口只能有常量。
                                成员方法
                                        抽象类可以有抽象方法,也可以有非抽象爱过你方法
                                        接口只能有抽象方法,而且方法有默认修饰符 public abstract
                                构造方法
                                        抽象类可以有构造方法
                                        接口没有构造方法
        案例:
                运动员案例:
                        篮球运动员和教练
                        乒乓球运动员和教练
                        现在篮球运动员和教练要出国访问,需要学习英语
                分析:
                        由下至上,不断向上抽取的过程
                实现
                        由上至下,先实现共性
                使用
                        使用具体的子类
多态
        多态
                多态的前提
                        子父类的继承关系
                        方法的重写
                        父类引用指向子类对象
                动态绑定:
                        编译期间
                        运行期间:运行期间调用的方法,是根据其具体的类型
        多态的成员特点:
                成员变量:
                        编译时看左边,运行时看左边(因为变量没有重写功能)
                成员方法
                        编译看左边,运行看右边(动态绑定)
                静态方法
                        编译看左边,运行看左边(因为调用静态方法不需要创建对象。)
                        静态方法不能被重写。
                总结:
                        编译看左边
        多态的向上转型和向下转型
                引用类型的转换
                        向上转型       
                                由小到大(子类型转换成父类型)
                                Animal  a = new Dog();//向上转型
                        向下转型
                                由大到小(需要明确的给出要转的类型)
                                Dog d = (Dog)a;//向下转型
                基本数据类型的转换
                        自动类型转换
                                由小到大
                        强制类型转换
                                由大到小
        多态的优缺点
                优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性
                缺点:无法直接访问子类的特有成员
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马