码迷,mamicode.com
首页 > 编程语言 > 详细

Java面向对象学习笔记 -- 3(继承、向上造型、重写)

时间:2015-05-25 14:55:47      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:继承   重写   向上造型   多态   

 

1. 继承

    1)extends关键字 ,使用继承可以实现代码的重用,在java语言中,需要通过extends关键字实现类的继承。继承完成后,子类(Sub class)可以继承父类(Super class)的成员变量及成员方法,同时子类也可以定义自己的成员变量和成员方法。届时,子类将具有父类的成员及本类的成员。 需要注意的是,Java语言不支持多重继承,即:一个类只能继承一个父类,但一个父类可以有多个子类。

    2)使用继承的好处:

        ① 继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。

        ② 继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。

        ③ 继承提供了软件复用功能,减小代码和数据的冗余度,大大增加程序的重用性。

        ④ 继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性

    3)继承中构造器的调用顺序

        ① 子类构造器里面一定会调用父类构造器,默认调用父类的无参构造器

        ② 子类父类都不写构造器,同样会存在调用关系。

        ③ 调用父类构造器只能写在子类构造器第一行,不写时候,也默认是第一行。

        ④ 当在子类构造器指定调用了父类的有参构造器,则不会再去执行默认的调用无参构造器

    4)super的用法

        ① super():用来调用父类无参构造器,一定在子类构造器第一行使用,可以不写的。

        ② super.属性,访问父类对象的属性

        ③ super.方法,调用父类的方法


2. 向上造型

    一个子类的对象可以向上造型为父类的类型。即,定义父类型的引用可以指向子类的对象,但是通过父类的引用只能访问父类所定义的成员,而不能访问子类所扩展的部分。

    父类型   变量   =   new  子类();

    向上造型是多态的一种体现,同时可以使程序更简单明了。

    属性绑定到变量的类型,由变量类型决定访问哪个属性;

    方法动态绑定到对象,由对象的类型决定访问哪个方法。

    强转:

    父类型   变量1   =   new  子类();

    子类型 变量2 = (子类型) 变量1;

    强转对方法动态绑定到对象无影响,因为强转的是父类的引用,而实例是没变的,只是把实例当作另一个状态去看而已。但是强转对属性动态绑定到变量类型有影响。


    /**

      * 在俄罗斯方块游戏中,每次下落的方块是随机生成的,但是不能保证下次生成什么类型的方块,

      * 所以,在获取方块时候,需要使用父类型作为方法的返回值类型。

      */

            public static Tetromino getOntTetronino(){

                int num = (int)(Math.random() * 7);

                switch( num ){

                    case 0 :  return new T();  break;

                    case 1 :  return new O(); break;

                    case 2 :  return new L(); break;

                    ... ...

                }

            }

            // 然后接收

            public static void main(String[] args){

                Tetromino tetro = getOntTetronino();

            }



3. 方法的重写

    重写(override):发生在两个类中,并且是子父类的关系,子类方法与父类方法签名相同,方法体不同。

    注意:

        1)重写方法被调用时,看对象

        2)两同两小一大原则

            2.1)两同:方法名同,参数列表同

            2.2)两小:子类返回值类型小于等于父类的

                2.2.1)返回值使用void和基本类型,必须相同

                2.2.2)返回值是引用类型时,可以子类小于等于父类

            2.3)一大:子类访问权限大于等于父类

    重写的好处:

        重写是对父类的功能的扩展,可用拥有父类的功能,还可以实现自己的功能,在实际开发过程中使用方便,同时也是代码结构清晰。

    重写和重载的区别:

        1)重写是发生在2个各类里面,且是字符类关系的2个类,重载是发生在一个类里的

        2)冲写遵循的原则是运行期绑定,重载则是编译期绑定

        3)重写必须方法名相同,参数列表相同;重载是方法名相同,参数列表必须不同。

 

本文出自 “永远年轻” 博客,请务必保留此出处http://kingkongzhao.blog.51cto.com/6319491/1654863

Java面向对象学习笔记 -- 3(继承、向上造型、重写)

标签:继承   重写   向上造型   多态   

原文地址:http://kingkongzhao.blog.51cto.com/6319491/1654863

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!