Java-多态

Posted 希小木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-多态相关的知识,希望对你有一定的参考价值。

1.多态是什么

同一种事物的多种表现形式,可以把多种子类都当做父类来看,统一标准

2.多态实现的前提

1).继承:有父类及对应子类

2).重写:子类重写父类的方法

3.多态的特点

1).父类引用指向子类对象

2).编译看左边,运行看右边

4.多态的使用

1).成员变量:父类

2).成员方法:父类的声明,子类的实现

3).静态资源:如果父子类有同名静态方法,则使用的是父类的

 

测试代码如下:

 1 package cn.xxm.oop;
 2 /**本类用于测试多态*/
 3 public class TestDemo1_1 {
 4     public static void main(String[] args) {
 5         //5.创建父类对象进行测试
 6         Animal8 a = new Animal8();
 7         a.eat();
 8         //父类调用子类方法进行测试
 9         //a.jump;//父类无法直接使用子类特有的功能
10         
11         //7.创建子类对象进行测试
12         Cat8 c = new Cat8();
13         c.eat();//小猫Cat8爱吃小鱼干~,调用的是子类重写以后的功能
14         c.jump();
15         
16         //8.创建多态对象进行测试
17         /**口诀1:父类引用指向子类对象
18          * 口诀2:编译看左边,运行看右边*/
19         Animal8 a8 = new Cat8();
20         a8.eat();//小猫Cat8爱吃小鱼干~,调用的是子类重写以后的功能
21         //a8.jump;//多态对象无法调用子类特有的功能
22         
23         Animal8 d = new Dog8();
24         d.eat();//小狗Dog8爱吃肉骨头~~
25         /**多态的出现是为了统一调用标准,向父类看齐
26          * 父类提供且被子类重写的功能才能使用,子类独有的功能无法使用*/
27     }
28 }
29 //1.创建父类
30 class Animal8{
31     //3.创建父类的普通成员方法eat
32     public void eat() {
33         System.out.println("小动物吃啥都行~");
34     }
35 }
36 //2.创建子类
37 class Cat8 extends Animal8{
38     //4.重写父类的方法--对父类中的代码进行修改
39     /**重写的规则:
40      * 子类权限修饰符>=父类的权限修饰符
41      * 方法签名(返回值类型&方法名&参数列表)保持一致*/
42     public void eat() {
43         System.out.println("小猫Cat8爱吃小鱼干~");
44     }
45     //6.创建子类特有方法
46     public void jump() {
47         System.out.println("小猫Cat8跳的老高了!");
48     }
49 }
50 //9.创建子类Dog8
51 class Dog8 extends Animal8{
52     public void eat() {
53         System.out.println("小狗Dog8爱吃肉骨头~~");
54     }
55 }

 

以上是关于Java-多态的主要内容,如果未能解决你的问题,请参考以下文章

每个人单核苷酸多态性(SNP)形成的原因是啥?

多态性和动态铸造

Java多态——代码复用性

Java 多态

java多态/重载方法——一个疑难代码引发的讨论

Java 多态