有一个比较经典的多态实例:
有一个Animal类,它有Cat,和Dog两个子类,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,当Dog调用这个方法时,输出的是“小狗汪汪汪”,这就是Java多态的实现。
1、定义一种动物,该类型的动物有叫的属性。
2、分别定义猫,狗,鸟,都继承于该动物,都有叫的属性。
3、分别表示出各个具体小动物的叫声,例如猫的叫声:喵、狗的叫声:汪、鸟的叫声:咻,点是叫声,实现各个具体小动物用的叫声的方法是用的同一个函数名称,就是动物的叫声函数。
多态:
这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿。
问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物。
如肉类;臼齿用来磨碎食物,如犬齿撕碎的肉类,就需要再用臼齿来磨碎,然后送到食道,胃,小肠,大肠进行消化。我恍然大悟,这不就是Java面向对象里的多态吗?多完美啊。
这也很好说明了为什么会有多态出现,因为生活中就存在太多这种例子,所以需要多态来匹配解决。
三个案例1、编写一个方法fun_01(),
判断一个整数是否包含数字7.
public class Test01{
public static void main(String[] args) {
Scanner sc =new Scanner(System.in)
System.out.println("请输入数值: ")
int num = sc.nextInt()
System.out.println(func2( num))
}
public static boolean fun_01(int num){
int n
boolean flag=false
while(num!=0){
n=num%10
if(n==7){
flag=true
break
}
num /= 10
}
return flag
}
}
2.metod2(),
对输入的任意字符串“1,4,7,13,5,17,9”
转换为数组元素是整数元素
,需要保存在整形数组中且实现排序输出“1 4 5 7 9 13 17”
public class Demo {
public static void main(String[] args) {
// String str =("1,4,7,13,5,17,9")
Scanner sc = new Scanner(System.in)
System.out.println("请输入数字字符串,并用逗号隔开")
String str = sc.next()
metod2(str)
}
public static void metod2(String str){
String array[] = str.split(",")
int p[]=new int[array.length]
for(int i=0i<array.lengthi++){
p[i]=Integer.parseInt(array[i])
}
//Arrays.sort(p)
for(int i=0i<p.length-1i++){
for(int j=0j<p.length-1-ij++){
if(p[j]>p[j+1]){
int temp =p[j]
p[j]=p[j+1]
p[j+1]=temp
}
}
}
for(int i=0i<p.lengthi++){
System.out.print(p[i]+" ")
}
}
}
3,编写一个方法,传入数值,打印出金字塔
public static void print(int num){
for(int i=0i<numi++){
for(int k=0k<num-i-1k++){
System.out.print(" ")
}
for(int j=0j<2*i+1j++){
System.out.print("*")
}
System.out.println()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)