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

Java基础针对自己薄弱环节总结04(面向对象多态)

时间:2015-08-06 16:44:55      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

一、多态的概念和前提

1、概念-什么是多态

对象在不同时刻表现出的不同的状态。

2、前提

A:要有继承关系或实现关系

B:要有方法重写或实现

C:要有父类引用指向子类对象,或父类接口指向子类对象

       3、举例:

       狗是动物

二、多态的成员特点

1、成员变量 

编译看左边,运行看左边

Fu f=new Zi();

f.name;//调用的是父类的name

2、非静态成员方法

Fu f=new Zi();

f.show();//调用的是子类的show

3、产生以上的原因

方法有重写,变量没有重写

三、多态的弊端和好处

弊端:父类引用不能直接使用子类对象的特有功能。

   解决方案:

           向下转型(强转)

好处:增强了程序的扩展性和可维护行

四、转型过程中出现的问题

     该异常产生的原因:类型不匹配
          一个父类的引用指向的是狗,要把这个父类的引用强制转换成猫,所以不行
          Animal animal = new Dog();
          Cat cat = (Cat)animal;//因为animal存储的是狗,强转成猫就会报错      
五、抽象类和抽象方法

1、抽象方法

只有方法声明,没有方法体的方法成为抽象方法,该方法用abstract修饰

2、抽象类

如果一个类中含有抽象方法,这个类就可以成为抽象类,该类被abstract修饰

3、什么时候定义抽象类

如果一个方法我们不确定他要做什么,就把这个方法定义成抽象的,那么这个类就被定义成抽象类

4、抽象类的基本特定

        1、抽象类抽象方法用abstract修饰

2、有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法

3、抽象类不能被实例化

4、如果一个类继承抽象类,要么本身是抽象类,要么必须实现抽象方法

5、抽象类的作用

强制子类必须完成某种功能

6、抽象类的成员特点

1、成员变量:可以常量,可以变量

2、构造方法

     有构造方法,但是不能创建对象,只是用于子类访问父类数据时,对父类的              成员进行初始化。

3、成员方法

              可以有抽象方法,也可以有非抽象方法

六、接口

1、概念

我们可以把接口看成一种特殊的抽象类,比抽象更抽象。因为它里面的方法都是抽象的,但注意接口不是类,我们只是把它看成类

2、接口的基本特点

1、接口不能被实例化。

2、接口中的方法:

          要么被子类重写。

          要么子类也是抽象类。
3、接口的成员特点

1、成员变量:接口中只有常量

因为接口的成员变量有默认修饰符:public static final

推荐:永远自己给出修饰符。

2、构造方法

没有构造方法//因为接口中的成员变量都被final修饰,定义的时候必须做初始化

任何类如果没有继承父类,那么这个类就继承自Object类。//所有类都直接或者间接的继承自Object类。Object类是所有类的超类

3、成员方法:接口中的方法都是抽象的

          因为接口中的成员方法有默认修饰符:public abstract

          推荐:永远自己给出修饰符。

4、接口的注意事项
      接口中不能有静态代码块,代码块,构造方法
4、接口与类,抽象类的关系

1、抽象类和接口的关系(掌握)

         抽象类:

                   成员变量:可以是变量,也可以是常量。

                   构造方法:有构造方法。

                   成员方法:可以是抽象方法,也可以是非抽象方法。

         接口:

                   成员变量:只能是常量。

                              默认修饰符:public static final

                   成员方法:只能是抽象方法。

                              默认修饰符:public abstract

2、类与接口的关系(掌握)

         类与类:

                   继承关系,只能单继承,可以多层继承。

         类与接口:

                   实现关系,可以单实现,也可以多实现。

                   还可以在继承一个类的同时,实现多个接口。

         接口与接口:

                   继承关系,可以单继承,也可以多继承。

3、设计理念的区别

         抽象类被继承,这个类中定义的是整个继承体现的共性内容。

                   体现:is a

         接口被实现,这个接口中定义的是整个体现的扩展内容。

                   体现:like a


版权声明:本文为博主原创文章,未经博主允许不得转载。

Java基础针对自己薄弱环节总结04(面向对象多态)

标签:

原文地址:http://blog.csdn.net/liubingkai1314/article/details/47311173

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