Java学习笔记(八)面向对象---抽象类
2024-09-04 20:34:27
当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体。
抽象类的特点
- 抽象方法一定在抽象类中。
- 抽象方法和抽象类都必须被abstract关键字修饰。
- 抽象类不可以用new创建对象,因为调用抽象方法没有意义。
- 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,才能建立子类对象调用。(如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。)
abstract class Student {
abstract void study();
abstract void read();
void sleep() {
System.out.println("sleep");
}
}
class StudentClass1 extends Student {
void study() {
System.out.println("study Java");
}
void read() {
System.out.println("read book");
}
}
class StudentClass2 extends Student {
void study() {
System.out.println("study python");
}
void read() {
System.out.println("study magazine");
}
}
public class AbstractDemo {
public static void main(String[] args) {
StudentClass1 s1 = new StudentClass1();
StudentClass2 s2 = new StudentClass2();
s1.study();
s1.read();
s1.sleep();
s2.study();
s2.read();
s2.sleep();
}
}
运行结果
study Java
read book
sleep
study python
study magazine
sleep
StudentClass1类和StudentClass2类分别对Student类中所有抽象方法都进行了复写。
抽象类中可以不定义抽象方法,仅仅是为了不让该类建立对象
最新文章
- CentOS 静态IP设置
- Linux的nm查看动态和静态库中的符号
- js压缩
- Sensor(LIGHT)
- Linux Kernel Version Numbering
- 继承多态绕点 C#篇
- 比较字符串,equals防空指针问题
- javascript jquery each 影响 函数返回值
- LNMP一键安装包-CentOS 5/6下自动编译安装Nginx,MySQL,PHP
- HDU 3259 Wormholes
- 大区间素数筛选 POJ2689
- MySQL中数据表的增操作
- oracle中关于Oracle Database 11g Express Edition 打不开的问题
- 201521123011《Java程序设计》第6周学习总结
- Scrapy架构及其组件之间的交互
- Java程序算法设计视频分享,需要的来
- 海思Hi3559A/CV100 DDR4驱动配置手册
- java实现带空格字符串的倒序输出
- nodejs,javascript过滤emoj表情
- Windows服务器搭建Redis