toString和equals重写
import java.awt.*;
import java.applet.Applet;
import java.awt.Color;
import java.util.Random;
import java.awt.Font;
import javax.swing.*;
import java.awt.event.*;
public class SU{
public static void main(String[] args)
{
Person p=new Person();
p.age=1;
p.name="Lucy";
System.out.println(p.toString());
//没有重写tostring的话输出的是Person@156643d4
//重写之后输出的是赋值内容
p.toString();
p.printf();
}
}
class Person{
String name;
int age;
public String toString(){
return "name "+name+" age "+age;
}
public boolean equals(Object obj){
if(obj!=null&&obj instanceof Person)
{//判断obj是否是person类的实例对象
Person p=(Person)obj;//强转类型
if(name.equals(p.name)&&(age==p.age))
return true;
else
return false;
}
else
return false;
}
public void printf()
{
System.out.println("Name is "+name+" and age is "+age);
}
}
多态总结
多态存在的三个必要条件
一、要有继承;
二、要有重写
三、父类引用指向子类对象。
Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
在java中,多态大致可以分为以下几种情况:
1)person为父类,student为子类。那么:person p=new student();
2)fliable为接口,bird为实现接口的类,那么:fliable f=new bird();
3)fliable为抽象类,bird为继承fliable的类,那么:fliablef=new bird();
instanceof运算符:
person p=new student();想将p转为student的
if(p instanceof student){
student s=(student)p;
}