Java之抽象类

抽象类通常用来作为一个类族的最顶层的父类,用最底层的类表示现实中的具体事物,用最顶层的类表示该类族所有的事物的共性。

抽象方法:

1、在定义Java方法时可以只给出方法头,而不给出方法内部实现代码,这种的方法称为抽象方法;

2、凡是没有方法体的方法必须用关键字abstract修饰为抽象方法;

3、凡是含有抽象方法的类必须声明为抽象类。

抽象类:

1、用abstract关键字修饰一个类时,该类叫做抽象类;
2、包含抽象方法的类必须声明为抽象类,但是一个抽象类中可以不包含任何抽象方法;
3、抽象类不一定有抽象方法,有抽象方法的一定是抽象类。

abstract class  A  //如果f方法没有方法体,则必须的在class前加 abstract  如果f方法含有方法体,则class前面可加也可不加abstract ,因为“一个抽象类中是可以不包含任何抽象方法”
{
	private int i;
	public abstract void f();  //如果f方法没有方法体,则f方法必须的声明为抽象方法,即必须的在前面加abstract
}

class TestAbsClass_1
{
	public static void main(String[] args)
	{
		System.out.println("今天我很高兴!");
	}
}


抽象类实现多态:

不能new出抽象类对象,但可以定义一个抽象类的引用。

例如,假设A是抽象类,B是A的子类且完全实现了A 的所有抽象方法,则:

A aa = new A();    //error
A aa = new B();    //OK
我们可以把一个子类对象的地址赋给抽象类的引用,然后通过抽象类的引用调用子类从父类继承过来的方法, 即抽象类也可以实现多态。

abstract class A
{
	public abstract void f();
}

class B extends A
{
	public void f()
	{
		System.out.println("哈哈");
	}
}

public class TestAbs_1
{
	public static void main(String[] args)
	{
		//A aa1 = new A();  //error
		A aa2 = null;       //可以定义一个抽象类的引用
		aa2 = new B();      //将子类对象的地址赋给抽象类的引用
		aa2.f();            //用抽象类的引用访问子类的方法  这就是多态
	}
}





转载于:https://www.cnblogs.com/yzy-blogs/p/6597347.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值