黑马程序员技术交流社区

标题: 多态及接口简易笔记 [打印本页]

作者: ringfingers    时间: 2015-9-25 23:06
标题: 多态及接口简易笔记
多态:成员变量
父类 F                                  Father f  = new Son();
栈内存中的父类在堆内存中寻找,只能找父类的this,子类的super

f.method(静态)     //Father.method();  编译看左边,运行看左边        非动态  =  静态   

f.method( )        //f.method();       编译看左边,运行看右边

f.num;             //(变量)                 编译看左边,运行看左边


抽象类中可以有抽象方法 也可以有非抽象方法
接口中的方法必须全部都是abstract的,接口中的量都是常量,public static final int
                                          而接口中方法public abstract void XX()
                        **!        子类重写父类的方法权限一定要高于父类的权限     !**
接口并没有构造方法,因为是干爹,不被继承,子类的super关键字访问的不是他
常量在构造方法初始化完成之前赋值是可以的

多态中引用数据类型转换:
        与基本数据类型相反的是,引用数据类型在进行数据类型转换的时候范围是相反的
        例如:        Person p = new Son();       隐式转换,小转大
假设子类中有一个独有的方法method(),但是由于Person p,栈内存中p的指针在堆内存中只能寻找到父类的方法
所以多态Person p = new Son();反而把权限限制了

        强制类型转换(大-小)
        Son s = (Son)p;
        s.method();                //将p强制转换为son类型的引用(s)时,就可以访问子类的独有的方法method了
               
类与类之间的关系:单继承(亲爹),多层继承(亲爹,爷爷)
类与接口之间的关系:实现,多实现(干爹)
接口与接口之间的关系:单继承多继承都可以
               




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2