博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多态及tostring方法与equals方法的重写
阅读量:4565 次
发布时间:2019-06-08

本文共 1342 字,大约阅读时间需要 4 分钟。

1.多态性的表现:①方法的重载与重写 ②子类对象的多态性

2.使用的前提:①要有继承关系 ②要有方法的重写
3.格式:Person p = new Man();//向上转型
// 虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法
p1.eat();
p1.walk();
// p1.entertainment();
4.>编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能够调用
>子类对象的多态性,并不使用于属性。

5.关于向下转型:

①向下转型,使用强转符:()
②为了保证不报ClassCastException,最好在向下转型前,进行判断: instanceof
// 若a是A类的实例,那么a也一定是A类的父类的实例。
if (p1 instanceof Woman) {
System.out.println("hello!");
Woman w1 = (Woman) p1;//强制向下转型
w1.shopping();
}

if (p1 instanceof Man) {

Man m1 = (Man) p1;
m1.entertainment();
}

重写equals方法:

package duotai;public class equa {	String name;	  int age;public equa(String name,int age){	this.name=name;	this.age=age;}  public boolean equals(Object obj){	  	  if(obj!=null){		  if(obj instanceof equa){			  equa eq=(equa)obj;			  return this.name.equals(eq.name);//这里是需要返回值的,所以需要return		  }		  }return false;//等于空直接返回false!	  }}class equa2{	public static void main(String[] ages){	equa e1=new equa("gao",13);	equa e2=new equa("gao",13);		System.out.println(e1.equals(e2));}}

toString方法重写:

package duotai;public class tos {  String name;  String sex;  public String toString(){	return name+sex;	    }}class text{	public static void main(String[] args){		tos t=new tos();		t.name="gao";		t.sex="nan";		System.out.println(t.toString());	}}

  

 

转载于:https://www.cnblogs.com/gaofangquan/p/7210218.html

你可能感兴趣的文章
(转)使用 python Matplotlib 库绘图
查看>>
进程/线程切换原则
查看>>
正则表达式语法
查看>>
20165301 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Vue的简单入门
查看>>
urllib 中的异常处理
查看>>
通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
查看>>
20181227 新的目标
查看>>
androidtab
查看>>
php 事件驱动 消息机制 共享内存
查看>>
剑指offer 二叉树的bfs
查看>>
LeetCode Maximum Subarray
查看>>
让我们再聊聊浏览器资源加载优化
查看>>
underscore demo
查看>>
CSS hack
查看>>
每日一小练——数值自乘递归解
查看>>
qq登陆错误提示
查看>>
bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维 + 二进制
查看>>
没写完,没调完,咕咕咕的代码
查看>>
Android Studio使用技巧:导出jar包
查看>>