java多态

来源:互联网 发布:小甲鱼java 编辑:程序博客网 时间:2024/06/08 12:36
多态分为方法多态性,对象多态性
方法多态性: 重载(同名方法参数列表不同)  和  重写(发生在继承关系中)
对象多态性:
向上转型

向下转型

package no2;class Person{void fun(){System.out.println("父类");}}//定义两个子类 重写父类的fun方法class Stu1 extends Person{void fun(){System.out.println("子类1");}void Stu1fun(){System.out.println("子类自己独有的方法");}}public class Main {public static void main(String[] args){//向上转型,子类转成父类Person s = new Stu1();s.fun();//子类继承了父类的fun的方法,父类对象s调用的是子类中的fun//s.Stu1fun();无法掉用,s是父类对象,不认识子类特有的方法//向下转型,父类转子类Stu1 s1 = (Stu1)s;s.fun();//子类的funs1.Stu1fun();//可以调用}}



定义两个子类分别继承Array,一个将数组排序,一个将数组翻转

package no2;class Array{private int[] arr;Array(int[] arr){this.arr = arr;}public int[] get(){return this.arr;}}//排序类class Sarray extends Array{public Sarray(int[] arr){super(arr);}public int[] get(){java.util.Arrays.sort(super.get());return super.get();}}//翻转类class Rarray extends Array{public Rarray(int[] arr){super(arr);}public int[] get(){for (int i=0, j=super.get().length-1; i<j; i++,j--){int t;t = super.get()[i];super.get()[i] = super.get()[j];super.get()[j] = t;}return super.get();}}public class Main {public static void main(String[] args){Array arr = new Sarray(new int[]{2,3,4,5,1});show(arr);}public static void show(Array arr){int[] temp = arr.get();for (int i=0; i<temp.length; i++){System.out.println(temp[i]);}}}


1 0
原创粉丝点击