一、多态
多态的概念:按字面意思来理解就是多种状态,也就是说同一个对象在不同的地方表现出不同的状态。比如接口的多种不同的实现方式即为多态。
多态性是允许将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将父类型的引用指向子类型的对象。
下面通过如下实例代码来说明:
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