作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章java多态注意项小结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
2
3
4
5
6
7
|
package
test;
//父类引用,指向(不同子类)的实例,对同一个实例方法名调用,调用的程序不
//一样。继承是多态得以实现的基础。
public
interface
test1 {
void
shout();
}
|
1
2
3
4
5
6
7
|
package
test;
public
class
test2
implements
test1 {
public
void
shout() {
System.out.println(
"1111"
);
}
}
|
1
2
3
4
5
6
7
|
package
test;
public
class
test3
implements
test1 {
public
void
shout() {
System.out.println(
"222222"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
|
package
test;
public
class
test4 {
public
static
void
main(String[] args) {
test1 ts =
new
test2();
ts.shout();
test1 ts1 =
new
test3();
ts1.shout();
}
}
|
1
2
3
4
5
6
7
8
9
|
package
test;
public
class
test5 {
public
static
void
speak() {
System.out.println(
"speak:"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package
test;
public
class
test6
extends
test5{
public
static
void
speak() {
System.out.println(
"11111"
);
}
//多态的基础是继承和重写
//多态仅限于实例方法
public
static
void
main(String[] args) {
test5 ts1 =
new
test5();
test6 ts =
new
test6();
ts1.speak();
ts.speak();
}
}
|
1
2
3
4
5
6
7
|
package
test;
public
class
test7 {
public
void
speak(){
System.out.println(
"speak:"
);
}
}
|
1
2
3
4
5
6
7
8
|
package
test;
public
class
test8
extends
test7{
@Override
public
void
speak() {
System.out.println(
"1111"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
|
package
test;
public
class
test9
extends
test7 {
@Override
public
void
speak() {
System.out.println(
"22222"
);
}
protected
void
action() {
System.out.println(
"敲代码"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package
test;
public
class
test10 {
public
static
void
main(String[] args) {
//向上类型转换 隐式 安全
//将test8的对象当作test7类型来用
test7 ts =
new
test8();
ts.speak();
//强制类型转换 显示 不安全
test7 ts1 =
new
test9();
test9 ts2 = (test9) ts1;
ts2.speak();
//怎么避免强制类型转换带来的不安全 面向接口编程加instanceof
test7 ts3 =
new
test8();
test7 ts4 =
null
;
if
(ts3
instanceof
test9) {
ts4 = (test9) ts3;
}
if
(ts3
instanceof
test8) {
ts4 = (test8) ts3;
}
ts4.speak();
}
}
|
1
2
3
4
5
6
7
8
|
package
test;
public
class
test11 {
public
void
speak(){
System.out.println(
"speak:"
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
|
package
test;
public
class
test12 {
public
static
void
main(String[] args) {
test11 ts =
new
test11();
ts.speak();
//返回该对象的字符串表示
System.out.println(ts.toString());
//返回该对象的哈希码值
System.out.println(ts.hashCode());
}
}
|
1
2
3
4
5
|
package
test;
public
interface
test13 {
void
speak();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package
test;
public
class
test14 {
//类里面定义的类称之为内部类(Inner Class),内部类是外部类的一个成员。
//Java内部类可以分为:成员内部类、方法内部类和匿名内部类等。
class
person
implements
test13{
@Override
public
void
speak() {
System.out.println(
"111111"
);
}
}
public
static
void
main(String[] args) {
class
person1
implements
test13{
@Override
public
void
speak() {
System.out.println(
"2222222222"
);
}
}
// 可以使用匿名内部类来实现接口。所谓匿名内部类就是没有名字的内部类,表面上看
// 起来它似乎有名字,实际那不是它的名字。当程序中使用匿名内部类时,在定义匿名
// 内部类的地方往往直接创建该类的一个对象。
new
test13(){
@Override
public
void
speak() {
System.out.println(
"3333333"
);
}
}.speak();
}
}
|
到此这篇关于java多态注意项总结的文章就介绍到这了,更多相关java多态内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/weixin_44692890/article/details/120782329 。
最后此篇关于java多态注意项小结的文章就讲到这里了,如果你想了解更多关于java多态注意项小结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!