老师说学会此法,少写无数代码!

Java语言中类的Encapsulation、inherit、polymorphic三大护法很重要,其中polymophic更是不得了,他会移花接木神功,老师说多态可概括为一句话,八个字:“相同代码,不同含义”,相信此八字心法会让很多菜鸟功力大增,废话不说啦,千言万语汇成一句话:学会此法,少写无数代码!

下面我给大家写个例子,领略一下此强大心法!

如果我们不写下面Test()方法,那我们在main ()方法中就要多写很多代码,在main()方法中多写的代码我用‘//’注释掉。

 

package cn.edu.hurst.homework;

 

public class JavaDemo {
 public static void main(String[]args) {
  Test.show(new Father());  //用Father中的Say()
  Test.show(new Son()); //调用Son中的Say()
  Test.show(new Grandfather());  //用Grandfather中的Say()

//如果没有Test()方法我将多写如下代码,子类越多写的代码也就越多。

//向下转型调用子类方法:

//Grandfather gf ;

//gf = new Father();

//gf.Say();

//gf = new Son();

//gf.Say();

//想要掉用Grandfather中的Say方法有两种方式;

//1、gf = new Grandfather();

//     gf.Say();

//2、向上转型:gf = new Father();或是实例化成Son, 如:gf = new Son();

                      gf = (Grandfather)gf;


 }
}


class Grandfather {
 int age = 100;
 String name = "爷爷";
 public void Say() {
  System.out.println("My name is "+name+", My age is "+age);
 }
}


class Father extends Grandfather {
 int age = 60;
 String name = "爸爸";
 public void Say() {
  System.out.println("My name is "+name+", My age is "+age);
 }
}


class Son extends Father {
 int age = 30;
 String name = "儿子";
 public void Say() {
  System.out.println("My name is "+name+", My age is "+age);
 }
}


class Test {
 public static void show(Grandfather grandfather) {
  grandfather.Say();
 }
}

 

 

转载于:https://www.cnblogs.com/visily/archive/2013/04/09/3010548.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值