Java中抽象类和抽象方法的区别 ---------------
来源:互联网 发布:wamp怎么打开php 编辑:程序博客网 时间:2024/05/16 19:03
抽象方法:在类中没有方法体的方法,就是抽象方法。
抽象类:含有抽象方法的类就叫抽象类。
抽象类中的抽象方法必须被实现!
如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
抽象类中的普通方法,可以不必实现。
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
}
阅读全文
0 0
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别 ---------------
- java中抽象类和抽象接口的区别
- java的抽象类和抽象方法
- Java的抽象类和抽象方法
- JAVA的抽象类和抽象方法
- java的抽象类和抽象方法
- 抽象类和抽象方法以及和接口的区别
- 2012.12.2(抽象类和抽象方法的区别)
- 谈《Java中抽象类,抽象方法,重载和覆盖》
- java中抽象方法和抽象类实现模版模式
- c#中抽象类和虚方法的区别?
- 【JAVA】Java中抽象类和接口的区别
- java中接口和抽象类的区别和介绍
- Java中抽象类和接口的用法和区别
- Java中抽象类和接口的用法和区别
- Java中抽象类和接口的用法和区别
- [jQuery] チェック済みの checkbox の値を取得して配列へ格納する方法
- 根据二叉树前序序列和中序序列构造二叉树
- Android音频实时传输与播放(一)
- XStream和Dom4j
- Android_ Listview点击条目跳转到相关内容
- Java中抽象类和抽象方法的区别 ---------------
- 初学maven的相关介绍
- UVa10537
- ImageLoader配置步骤
- 学习阿里巴巴开发手册-2
- cocos2d js 编译APK出现clang: error: no input files
- 二进制和16进制的转化与输出
- 凸优化学习笔记6.1
- 使用redis-stat来监控redis实例