黑马程序员技术交流社区

标题: 多态,面试必考,以后开发中的重点 [打印本页]

作者: 1169646761    时间: 2014-9-3 21:09
标题: 多态,面试必考,以后开发中的重点
多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。
体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();
多态的好处:提高了程序的扩展性。
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)
多态的前提:
1:必须要有关系,比如继承、或者实现。
2:通常会有覆盖操作。  

匿名内部类:没有名字的内部类。就是内部类的简化形式。一般只用一次就可以用
这种形式。匿名内部类其实就是一个匿名子类对象。想要定义匿名内部类:需要前提,内部类必须继承一个类或者实现接口。
匿名内部类的格式:new 父类名&接口名(){ 定义子类成员或者覆盖父类方法 }.方法。
匿名内部类的使用场景:
当函数的参数是接口类型引用时,如果接口中的方法不超过3个。可以通过匿名内部类来完成参数的传递。
其实就是在创建匿名内部类时,该类中的封装的方法不要过多,最好两个或者两个以内。  

异 常:★★★  
异常处理原则:功能抛出几个异常,功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性,抛几个就处理几个。
特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在下面。
throw 和throws关键字的区别:
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。
《》《》《》《》《》《》《》《》《》《》
package iexame.com;

public class Test6 {

        /**
         * @param args
         * 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,
         * 并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
         */
       
                // TODO Auto-generated method stub

                private int num=34;
                private void show(){
                                System.out.println("外部函数");
                                }
                                class Inner
                                {
                                        private int num=45;
                                        private void show1(){
                                                System.out.println("内部函数"+num);
                                        System.out.println("外部成员变量num="+Test6.this .num);
                                        show();
                                        }
                                       
                                }
                                void fun(){
                                        Inner iner=new Inner();
                                        iner.show1();
                                        }

                                public static void main(String[] args){
                                Test6 T=new Test6();
                                T.fun();
                        }
       
        }

作者: iefegend    时间: 2014-9-3 22:07
学习一下
作者: 唤月    时间: 2014-9-3 22:14
同感,学习下........
作者: 冯大卫    时间: 2014-9-3 22:23
多谢楼主
作者: 许愿じ☆VE杰    时间: 2014-9-3 22:41
收藏,以后看
作者: Imp_x    时间: 2014-9-3 23:10
学习一下
作者: 梧桐树下    时间: 2014-9-3 23:11
这么多啊
作者: MeryStyle    时间: 2014-9-3 23:17
多谢楼主!
作者: 木易在他乡    时间: 2014-9-4 09:55
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法

编译时不能访问子类方法,运行时还是访问子类的非静态方法的吧
作者: 沙拉很好吃    时间: 2014-9-4 10:45
面向接口编程
作者: king13131313    时间: 2014-9-4 11:37
谢分享!!
作者: 梦里听传说    时间: 2014-9-4 11:51
学习一下
作者: zhxu188    时间: 2014-9-4 12:10
怒赞一个,学习了
作者: ___瘦不了    时间: 2014-9-4 12:27
学习一下
作者: 毛富强    时间: 2014-9-4 12:31
也来   学习学习
作者: wfaly    时间: 2014-9-4 16:11
学习了 ...Thanks
作者: tiandzwx    时间: 2014-9-4 16:14
复习一下:D
作者: 菜鸟一号    时间: 2014-9-4 16:46
谢谢楼主的分享
作者: 碎流    时间: 2014-9-4 21:02
总结的不错,支持一个  
作者: 大山    时间: 2014-9-4 21:20
基础里的吧
作者: ☆枫の云    时间: 2014-9-4 21:24
感谢楼主分享啊!
作者: dhgcy    时间: 2014-9-5 20:50
感谢分享,努力学习中




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