不积跬步,无以至千里;不积小流,无以成江海。

 

Java语言基础

 

Java的对象的多态性

父子实例之间的转化处理:

对象向上转型:父类 父类实例 = 子类实例、自动完成转化

对象向下转型:子类 子类实例 = (子类)父类实例、强制完成转化

 

向上转型(描述一些公共的特征)

可以对参数统一设计:

class People {
	@Deprecated
	public void say() {
		System.out.println("I am people");
	}
	public String sayy() {
		return "I am a people";		
	}
}

class Student extends People{

	@Override
	public void say() {
		// TODO Auto-generated method stub
		System.out.println("I am Student");
	}
}

class Child extends People{

	@Override
	public void say() {
		// TODO Auto-generated method stub
		System.out.println("I am child");
	}
}

public class Test {
	public static void main(String[] args) {
		People student = new Student();
		People child = new Child();
		fun(student);	
		fun(child);
	}
	public static void fun(People people) {
		people.say();
	}
}

 

向下转型(描述子类自己特殊的定义)

但是向下转型不安全

class Person {
	public void say() {
		System.out.println("I am person");
	}
}

class SuperMan extends Person {
	public String fly() {
		return "I can fly";		
	}
}

public class JavaDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person per = new SuperMan();
		per.say();
		SuperMan supe = (SuperMan) per;
		System.out.println(supe.fly());
	}
}

 

posted on 2020-05-19 17:55  smile学子  阅读(161)  评论(0编辑  收藏  举报