抽象类和抽象方法常用知识点:
(1)抽象类作为被继承类,子类必须实现抽象类中的所有抽象方法,除非子类也为抽象类。
也就是说,如果子类也为抽象类,可以不实现父类中的抽象方法。但是,如果有一个非抽象类
继承于抽象子类,需要实现抽象子类,抽象子类的抽象父类的所有抽象方法,新帐旧账一起算。
(2)抽象类不能用final进行修饰。
(3)抽象类不能被实例化,也就是说你用的时候不能通过new关键字创建。
(4)抽象类中可以包含抽象方法和非抽象方法,抽象方法没有方法体,也就是没有具体实现,
只是定义了有什么功能,但是非抽象方法含有方法体。
eg:
抽象父类Person:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package com.lanhuigu.java;
/**
* 抽象类:不能用final修饰,
* 可以包含抽象方法和非抽象方法,
* 抽象方法没有方法体,只是定义功能,没有实现;
* 非抽象方法为正常的方法。
*/
public abstract class Person {
/*
* abstract methods
*/
public abstract String eat();
public abstract String sleep();
/*
* non-abstract methods
*/
public String sport() {
return "生命在于运动";
}
}
|
非抽象子类Teacher:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package com.lanhuigu.java;
/**
* 继承于抽象类person,必须实现父类中的所有抽象方法
*/
public class Teacher extends Person {
@Override
public String eat() {
// TODO Auto-generated method stub
return "老师吃饭";
}
@Override
public String sleep() {
// TODO Auto-generated method stub
return "老师睡觉";
}
}
|
非抽象子类Student:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package com.lanhuigu.java;
/**
* 继承于抽象类person,必须实现父类中的所有抽象方法
*/
public class Student extends Person {
@Override
public String eat() {
// TODO Auto-generated method stub
return "学生吃饭";
}
@Override
public String sleep() {
// TODO Auto-generated method stub
return "学生睡觉";
}
}
|
抽象子类OthersPerson:
?
|
1
2
3
4
5
6
7
|
package com.lanhuigu.java;
/**
* 抽象类继承自抽象类,可以不用实现其父类的抽象方法
*/
public abstract class OthersPerson extends Person {
public abstract String call();
}
|
非抽象子类ExtendsOthersPerson继承于抽象子类OthersPerson:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.lanhuigu.java;
/**
* 必须实现抽象父类OthersPerson,以及OthersPerson父类Person中
* 的所有抽象方法,新帐旧账一起算。
*/
public class ExtendsOthersPerson extends OthersPerson {
@Override
public String sleep() {
// TODO Auto-generated method stub
return "睡觉";
}
@Override
public String eat() {
// TODO Auto-generated method stub
return "吃饭";
}
@Override
public String call() {
// TODO Auto-generated method stub
return "打电话";
}
}
|
测试代码:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package com.lanhuigu.java;
public class TestAbstract {
public static void main(String[] args) {
Teacher teacher = new Teacher();
Student student = new Student();
//OthersPerson othersPerson = new OthersPerson();//报错,抽象类不能被实例化
System.out.println(teacher.eat());
System.out.println(teacher.sleep());
System.out.println(teacher.sport());
// 继承父类非抽象方法
System.out.println("==============");
System.out.println(student.eat());
System.out.println(student.sleep());
System.out.println(student.sport());
// 继承父类非抽象方法
}
}
|
控制台输出:
老师吃饭
老师睡觉
生命在于运动
==============
学生吃饭
学生睡觉
生命在于运动
总结
以上就是本文关于java编程abstract类和方法详解的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/yhl_jxy/article/details/53258801
相关文章
猜你喜欢
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 82
-
2025-05-27 41
-
2025-05-29 118
-
2025-05-29 109
-
2025-06-04 36
热门评论

