码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象随笔(多态)

时间:2017-12-03 21:42:05      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:付费   类的方法   test   就是   方法调用   string   方法   ati   一个   

一、多态的前提

1.有继承;

2.有重写;

3.父类引用指向子类对象。

二、多态的作用

1.提高代码的维护性;

2.提高代码的扩展性;

三、多态的缺点

不能调用子类特有的方法

但是可以可以向下转型,就可以调用子类的特有方法了

四、多态的实质

多态就是子类向上转型为父类,可以调用父类中定义的所有属性和方法,但是对于只存在与子类中的方法和属性不能调用,若子类重写了父类中的某些方法,在调用这些方法的时候,必定是使用子类中定义的这些方法

五、多态的种类

1.编译时多态

2.运行时多态

六、多态的特点

1.编译时参考父类,如果没有会编译失败

2.运行时: 1)静态方法,运行父类的静态方法(静态属于类,不属于对象,直接用类名.方法调用,与多态无关);

        2)非静态方法,运行子类中重写的父类的方法。

代码示例1:

 1 public class Vip {
 2     
 3     //定义一个付费VIP会员
 4     public void vip() {
 5         System.out.println("付费会员");
 6     }
 7 }
 8 
 9 public class BeggerVip extends Vip{
10     
11     //定义一个活动会员
12     public void vip() {
13         System.out.println("活动会员");
14     }
15 }
16 
17 public class Test {
18     
19     public static void main(String[] args) {
20         //多态调用
21         Vip v = new BeggerVip();
22         //输出活动会员
23         v.vip();
24     }
25 }

 

代码示例2:

 1 public class A {
 2     
 3     int a = 1;
 4     public void function() {
 5         System.out.println(a);
 6     }
 7 }
 8 
 9 public class B extends A{
10     
11     int a = 2;
12     public void function() {
13         System.out.println(a);
14     }
15 }
16 
17 public class Test {
18     
19     public static void main(String[] args) {
20         //多态调用
21         A a = new B();
22         //输出2
23         a.function();
24     }
25 }

 

面向对象随笔(多态)

标签:付费   类的方法   test   就是   方法调用   string   方法   ati   一个   

原文地址:http://www.cnblogs.com/shak1ng/p/7967342.html

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