java 之多态与泛型

一、多态

多态的概念:按字面意思来理解就是多种状态,也就是说同一个对象在不同的地方表现出不同的状态。比如接口的多种不同的实现方式即为多态。

多态性是允许将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将父类型的引用指向子类型的对象

下面通过如下实例代码来说明:

package test;

public class Test1{
	public static void main(String agrs[]){
		/*如下即为多态*/
		parent c1=new child1("小华");
				c1.eat();
		parent c2=new child2("小明");
		c2.eat();
	}
	
}

class parent{
	
	public String name;//倘若这里为private类型的话 子类是拿不到的
	
	public parent(String name){
		this.name=name;
	}
	public void eat(){
		System.out.println("parent "+this.name +"is eating");
	}

}

 class child1 extends parent{
	
	public child1(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}
	
	public void eat(){
		System.out.println("child1 "+super.name +" is eating by using chopsticks");
	}
	
}

 class child2 extends parent{
		
		public child2(String name) {
			super(name);
			// TODO Auto-generated constructor stub
		}
		
		public void eat(){
			System.out.println("child2 "+super.name +" is eating by using Spoon");
		}
		
	}

运行结果如下:

child1 小华 is eating by using chopsticks
child2 小明 is eating by using Spoon

二、泛型

泛型的概念:总的来说泛型也就是指参数化类型,参数化类型也就是将类型参数化,在真正实现的时候,传入规定的类型。

比如我们的list<Stirng> L=new list<String>();这就是泛型。<>里面的类型是根据我传入的Stirng来确定的。

下面通过一个实例来说明:(该实例为通过使用泛型来打印出不同字符串的元素)

public class GenericMethodTest
{
   // 泛型方法 printArray                         
   public static < E > void printArray( E[] inputArray )
   {
      // 输出数组元素            
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }

    public static void main( String args[] )
    {
        // 创建不同类型数组: Integer, Double 和 Character
        Integer[] intArray = { 1, 2, 3, 4, 5 };
        Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
        Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };

        System.out.println( "整型数组元素为:" );
        printArray( intArray  ); // 传递一个整型数组

        System.out.println( "\n双精度型数组元素为:" );
        printArray( doubleArray ); // 传递一个双精度型数组

        System.out.println( "\n字符型数组元素为:" );
        printArray( charArray ); // 传递一个字符型数组
    } 
}

运行结果如下:

整型数组元素为:
1 2 3 4 5 

双精度型数组元素为:
1.1 2.2 3.3 4.4 

字符型数组元素为:
H E L L O 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值