Java中抽象类和抽象方法的区别
来源:互联网 发布:天银网络 编辑:程序博客网 时间:2024/05/16 19:11
原文
抽象方法:在类中没有方法体的方法,就是抽象方法。
抽象类:含有抽象方法的类就叫抽象类。
抽象类中的抽象方法必须被实现!
如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
抽象类中的普通方法,可以不必实现。
1 用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 :
1
abstract
class
Animal {
//用abstract来定义一个Animal为抽象类
2
}
3
和
4
public
abstract
void
enjoy();
//用abstract来定义一个抽象方法"enjoy"
2 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
3 抽象类不能被实例化。
4 抽象方法只需声明,而不需实现某些功能。如:
1
public
abstract
void
enjoy();
//这个抽象方法不需要实现功能
2
3
public
void
enjoy() {
4
System.out.print(
"叫声"
);
//而一般的方法有必要实现某些功能
5
}
例A:没抽象类的多态程序
1
class
Person {
2
public
void
f() {
3
System.out.println(
"父类"
);
4
}
5
}
6
7
class
Students
extends
Person {
8
public
void
f() {
9
System.out.println(
"学生类"
);
10
}
11
}
12
13
class
Teacher
extends
Person {
14
public
void
f() {
15
System.out.println(
"教师类"
);
16
}
17
}
18
19
public
class
Test3 {
20
public
static
void
main(String[] args) {
21
Person s =
new
Students();
22
Person t =
new
Teacher();
23
s.f();
24
t.f();
25
}
26
}
例B:抽象类的多态程序
1
abstract
class
Person {
2
public
abstract
void
f();
3
}
4
5
class
Students
extends
Person {
6
public
void
f() {
7
System.out.println(
"学生类"
);
8
}
9
}
10
11
class
Teacher
extends
Person {
12
public
void
f() {
13
System.out.println(
"教师类"
);
14
}
15
}
16
17
public
class
Test3 {
18
public
static
void
main(String[] args) {
19
Person s =
new
Students();
20
Person t =
new
Teacher();
21
s.f();
22
t.f();
23
}
24
}
参考:http://blog.csdn.net/mal327/article/details/7332110
0 0
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别 ---------------
- java中抽象类和抽象接口的区别
- java的抽象类和抽象方法
- Java的抽象类和抽象方法
- JAVA的抽象类和抽象方法
- java的抽象类和抽象方法
- 抽象类和抽象方法以及和接口的区别
- 2012.12.2(抽象类和抽象方法的区别)
- 谈《Java中抽象类,抽象方法,重载和覆盖》
- java中抽象方法和抽象类实现模版模式
- c#中抽象类和虚方法的区别?
- 【JAVA】Java中抽象类和接口的区别
- java中接口和抽象类的区别和介绍
- Java中抽象类和接口的用法和区别
- Java中抽象类和接口的用法和区别
- Java中抽象类和接口的用法和区别
- 坐标移动
- 牛顿迭代法(Newton's Method)
- 以太网协议|MAC地址|IP协议|子网掩码|ARP协议|UDP协议|TCP协议|静态IP地址|动态IP地址|DHCP协议|网关|DNS协议等一串互联网协议名称一站式解读
- 教你认清MVC,MVP和MVVM
- Codeforces Round #404 (Div. 2) D. Anton and School
- Java中抽象类和抽象方法的区别
- Linux运维之路——网络设置
- POJ 1984 Navigation Nightmare(带权并查集)
- node(npm)配置vue时出现 vue不是内部或外部命令!!!!!!
- 机器学习常见的六大错误
- java中子类继承父类时是否继承构造函数呢?
- 数据结构---顺序表
- ubuntu 安装 pip 及 pip 常用命令
- LeetCode刷题【Array】 Construct Binary Tree from Inorder and Postorder Traversal