java面向对象- 多态性的体现和使用

本文详细介绍了Java中多态性的概念及其应用。包括方法的重载与重写、对象的向上及向下转型,并通过具体代码示例展示了如何利用多态性进行编程。此外,还解释了如何在实际开发中有效利用多态特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 多态体现:

        方法的重载和重写

        对象的多态性


2.对象的多态性:

        向上转型:程序会自动完成

            父类 父类对象 = 子类实例

        向下转型:强制类型转换

            子类 子类对象 = (子类)父类实例       

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class A{
    public void tell01(){
        System.out.println("A--tell01");
    }
    public void tell02(){
        System.out.println("A--tell02");
    }
}
 
class extends A{
    public void tell01(){
        System.out.println("B--tell01");
    }
    public void tell03(){
        System.out.println("B--tell03");
    }
}
 
public class PolDemo01 {
 
    public static void main(String[] args) {
        //向上转型
//      B b = new B();
//      A a = b;
//      a.tell01();//tell01重写的
//      a.tell02();
        //向下转型
        A a = new B();
        B b = (B)a;
        b.tell01();
        b.tell02();
        b.tell03();
    }
 
}

运行结果:

       向上转型:                                  向下转型:

            B--tell01                                   B--tell01

            A--tell02                                   A--tell02

                                                        B--tell03

            


3.对象多态性的使用:       

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class A1{
    public void tell01(){
        System.out.println("A--tell01");
    }
}
 
class B1 extends A1{
    public void tell02(){
        System.out.println("B--tell02");
    }
}
 
class C1 extends A1{
    public void tell03(){
        System.out.println("C--tell03");
    
}
 
class D1 extends A1{
     
}
 
public class PolDemo02 {
 
    public static void main(String[] args) {
        say(new B1());
        say(new C1());
        say(new D1());
    }
     
    public static void say(A1 a){
        a.tell01();
    }
 
}

执行结果:    

    A--tell01

    A--tell01

    A--tell01


本文转自yeleven 51CTO博客,原文链接:http://blog.51cto.com/11317783/1757222
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值