(父类)
package Zhouwu;
public class Parent extends Object {
//基本属性
public String gender;
public int age;
//空参构造
public Parent(){
}
//实参构造
this.name=name;
this.gender=gender;
this.age=age;
}
public void eat(){
System.out.println("我们去吃中午饭咯!");
}
public void play(){
System.out.println("去打篮球好玩");
}
@Override
public String toString(){
return "Parent[name="+name+",gender="+gender+",age="+age+"]";
}
}
(子类)
package Zhouwu;
public class Child extends Parent{
//对父类公共方法eat()进行重写
@Override
public void eat(){
System.out.println("我爱吃苹果和香蕉");
}
public void work(){
System.out.println("我爱学习");
}
}
(主函数)
package Zhouwu;
public class Testdo {
public static void main(String[] args){
Parent parent=new Parent("小江","男",23);
System.out.println(parent.name);
System.out.println(parent);
//获取对象的hashCode值
int hash=parent.hashCode();
System.out.println(hash);
//获取hashCode值得16进制无符号位表示形式
String hex=Integer.toHexString(hash);
System.out.println(hex);
//如我们没有重写Object类中的toString方法,则得到的是下面的结果值
String p=parent.getClass().getName()+"@"+Integer.toHexString(parent.hashCode());
System.out.println(p);
parent.eat();
parent.play();
Child child=new Child();
child.eat();
child.work();
System.out.println("*******************************************");
/**
* 这就是多态!!
* 父类声明指向子类对象(上转型对象,也叫向上造型,这是一种安全的行为)
* 子类构造的对象值给父类声明的引用
*/
Parent pc=new Child();
pc.eat();
pc.play();
/**
* 上转型对象不能调用子类的特有方法
* 它执行的过程:
* 先去父类中查看是否有work()这个方法
* 如果父类中没有这个方法,则编译报错
* 如果父类有这个方法,则去子类中调用执行
*/
//pc.work();
}
}