什么是抽象类? 抽象类如何演变多态

 

 

 

abstract class Abs{
	private int i;
	public abstract void f();
}
public class TestABsClass {

	public static void main(String[] args) {
		System.out.println("抽象类!");

	}
}

总结:

       如果f()方法没有方法体,class类前面必须加abstract修饰, 如果f()方法
    含有方法体,class前面可以加也可以不加abstract修饰,因为一个抽象类中 是可以没有抽象方法的.少见.
      f()方法 如果没有方法题,必须加abstract修饰为 抽象方法

 

 

abstract class ABS1{
	abstract public void f();
}
class S extends ABS1{
	public void f(){
		System.out.println("bbbbb");
	}
}
public class TestABsClass_2 {

	public static void main(String[] args) {
		//ABS1  a =new ABS1(); error
		ABS1 aa =new S(); //定义一个抽象类的引用
		aa.f();
	}

}

从本程序中 可以看出,抽象类不能实例话. 但是可以定义一个抽象类的引用
可以把一个子类对象的地址付给抽象类的引用,然后通过抽象类的引用调用子类从父类继承过来的
方法:
     抽象类实现多态

       A aa2 =null;  //可以定义一个抽象类的引用

       aa2=new B(); //将子类对象地址赋给抽象类的引用

       aa2.f();  //用抽象类的方法访问子类的方法 .这就是多态

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值