代码改变世界

java 多态 抽象类 接口

2016-04-05 20:30  木头蓬子  阅读(129)  评论(0)    收藏  举报

public class AbstractTest
{
public static void main(String[] args)
{
Fruit f = new Apple();

f.up();

myPear my = new myPear();

my.down();
}
}

abstract class Fruit
{
/*
1. 抽象的方法 -- 用来规范子类的行为
2. 抽象的方法必须要用abstract 修饰
3. 抽象的方法没有方法体
4. 抽象类的子类必须要取实现抽象类的抽象方法
5. 抽象类里面可以有抽象方法,也可以有具体的方法,但是具体的类里面不能有抽象的方法
6. 子类如果是抽象类,那么你可以不用实现父类里面的抽象方法,如果不是抽象类那么必须要实现
*/
public abstract void down();// 方法的申明

public void up()
{// 方法的实现开始
System.out.println("up");
}// 方法的实现结束
}

class Apple extends Fruit
{
public void down()
{
System.out.println("apple....");
}
}

abstract class Pear extends Fruit
{
public void down()
{
System.out.println("pear down");
}
}

class myPear extends Pear
{

}

多态: 父类型的引用可以指向子类型的对象。

一共有两种类型的强制转换:
a) 向上类型转换( 向上类型转换( upcast):比如说将 ):比如说将 ):比如说将 Cat Cat类型转换为 Animal 类型 ,即将子类型 ,即将子转换为父类型。
对于向上,不需要显式指定b) 向下类型转换( 向下类型转换(  downcast):比如将 ):比如将 ):比如将  Animal 类型转换为 类型转换为 Cat Cat类型 。即将父类型 。即将父转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 转换为子类型。对于向下,必须要显式指定 (必须要使用强制类型 (必须要使用强制类型 (必须要使用强制类型) 。

抽象类( abstract class ): 使用了 abstract  关键字所修饰的 关键字所修饰的 类叫做抽象。 抽 象类无法实例化,也就是说不能 new 出来一个抽象类的对象(实例)。 

接口: 接口的地位等同于 接口的地位等同于 class,接口中的所有方法都是都是抽象方法。在声明接口中的方法时,可以使用 abstract关键字,也可以不使用。通 常情况下,都会省略掉 abstract关键字。