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-多态的主要内容,如果未能解决你的问题,请参考以下文章