java基础之抽象类的介绍
2024-10-11 22:47:51
抽象类的特点:
1.当方法只有声明没有具体实现的时候,需要用abstract修饰符修饰。抽象方法必须定义在抽象类当中,所以抽象类也需要用abstract修饰
2.抽象类不可以被实例化,为什么呢?
因为调用抽象方法没有意义
3.抽象类的子类必须覆盖所有的父类的抽象方法之后,子类才能够被实例化,否则子类也还是抽象类;
class A extends chouxiang {
@Override
void bark() {//只有覆盖了bark()方法,才能将A类实例化
// TODO Auto-generated method stub
System.out.println("你说呢");
}
}
public abstract class chouxiang {
abstract void bark();//必须让子类重写才有意义
private int bark(int a, int b) {//抽象类中可以有非抽象方法,即不需要子类必须重写该方法
return a + b;
}
public static void main(String[] args) {
A a = new A();
a.bark();//调用的是重写的无参的bark()方法
}
}
- 抽象类中有构造函数吗?
有,用于对子类的初始化
- 抽象类中可以没有没有抽象方法吗?
可以,但是很少见,目的就是不让子类创建对象
- 抽象类不可以和哪些关键字使用
1.private:父类中的private修饰的方法对于子类不可见,即子类无法对方法进行覆盖
2.static:当使用static修饰的时候,就可以直接使用类名调用该方法了,那就不用让子类进行实现了;除此之外,即便直接调用了也只是一个方法声明,并没有意义。
3.final:abstract的意义在于让子类对修饰的方法进行覆盖,但是final却是不让方法进行覆盖,两者矛盾
- 抽星类一定是个父类吗
是的,因为需要其子类覆盖其方法才有意义
最新文章
- 前端学HTTP之URL
- Python之路-(Django进阶二)
- IIC
- 深度学习(deep learning)
- 自学silverlight 5.0
- Squid 操作实践
- SQL server 2012
- 匹配 prev 元素之后的所有 siblings 元素
- iOS UIApplicatin和它的delegate
- Openstack之Swift架构(Cloud Storage)
- Qt学习之路(58): 进程间交互(QProcess.readAllStandardOutput可以读取控制台的输出)
- noip模拟赛:电话时间[字符串]
- 201521123077 《Java程序设计》第12周学习总结
- day12(表达式,推导式,名称空间与作用域,函数的嵌套定义)
- latch
- css animate
- linux下nginx日常操作
- 【转】AlphaGO Zero 原理
- C# string.join
- Bytom 技术 FAQ