抽象类: 抽象类中可以有抽象方法和非抽象方法,非抽象类中不可有抽象方法
abstract关键字 :声明要被继承的类
B类继承了A类 即可使用上下转型
A a=new B();
例子:Chinese extends language
language girl =new Chinese();//上下转型
public abstract class language{ //抽象类,封装了两个行为标准
abstract void speak();
abstract void cooking();
}
class Chinese extends language{
@Override
void speak(){
System.out.println("你好");
}
@Override
void cooking(){
System.out.println("中文");
}
}
class English extends language{
@Override
void speak(){
System.out.println("hello");
}
@Override
void cooking(){
System.out.println("English");
}
}
class use{
language friend;
void setlanguage(language f){
friend=f;
}
void showlanguage(){
friend.speak();
friend.cooking();
}
}
public class text {
public static void main(String args[]){
language girl =new Chinese(); //这里girl是上转型对象
use boy = new use();
boy.setlanguage(girl);
boy.showlanguage();
girl=new English(); //girl 是上转型对象
boy.setlanguage(girl);
boy.showlanguage();
}
}