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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ringfingers 中级黑马   /  2015-9-25 23:06  /  144 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态:成员变量
父类 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了
               
类与类之间的关系:单继承(亲爹),多层继承(亲爹,爷爷)
类与接口之间的关系:实现,多实现(干爹)
接口与接口之间的关系:单继承多继承都可以
               

0 个回复

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