java中的抽象类

java中的抽象类

1.概念
随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

用abstract关键字来修饰一个类,这个类叫做抽象类。

用abstract来修饰一个方法,该方法叫做抽象方法。
抽象方法:只有方法的声明,没有方法的实现。以分号结束:
比如:public abstract void talk();

含有抽象方法的类必须被声明为抽象类。

抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。

不能用abstract修饰变量、代码块、构造器;

不能用abstract修饰私有方法、静态方法、final的方法、final的类。

2.具体写法

abstract class A {
	abstract void m1();
	public void m2() {
		System.out.println("A类中定义的m2方法");
	}
}
class B extends A {
	void m1() {
		System.out.println("B类中定义的m1方法");
	}
}
public class Test {
	public static void main(String args[]) {
		A a = new B();
		a.m1();
		a.m2();
	}
}

3.抽象类的应用
抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类。

4.问题
问题1:为什么抽象类不可以使用final关键字声明?
抽象类需要被子类继承
问题2:一个抽象类中可以定义构造器吗?
可以
问题3:是否可以这样理解:抽象类就是比普通类多定义了抽象方
法,除了不能直接进行类的实例化操作之外,并没有任何的不同?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值