目录
1.方法重写(override)
主函数:
main ()
{ House h=new Horse() ;
h.run(); //输出:得儿驾!得儿驾!(覆盖了父类中的同名函数)
}
//父类
class Vehicle
{
public:
void run(){
System.out.println("跑");
}
public void stop
{
System.out.println("停下!");
}
}
//子类
class Horse extends Vehicle
{
public void run()
{
System.out.println("得儿驾!得儿驾!");
}
}
输出:
得儿驾!得儿驾!
2.Object类
public class Person ; //相当于class Person extends Object
Object obj; //创建Object类的对象
Object类是所有java的根基类,包含许多方法,其子类中都可调用)
3.to String
(系统内部的类)
main(){
TestObject to = new TestObject();
System.out.println(to);//相当于(to.toString())
//调用toString的方法
4.equals方法的重写
(Object类中提供的方法,提供定义“对象内容相等”的逻辑)
主函数:
{
Object obj;
String str;
String str1=new String ("sxt");
String str2=new String ("sxt");
System.out.println(str1==str2); //false,内容相同但不同对象
System.out.println(str1.equals(str2)); //true,sxt=sxt
}
注:在eclipse编译器中单击右键找到source--hascode and equals 的方法(依赖于id生成),可以自定义重写equals
5.super关键字
super是直接父类对象的引用,可通过super访问父类中被子类覆盖的方法或属性,
若构造函数第一行没有显示调用super()或this(...)那么java默认都会调用super(),含义是调用父类无参构造。
public class Test{
public static void main(String[] args){
new ChildClass.func();
}
}
class Fatherclass{
public int value;
void func()
{
value=100;
System.out.println("Fatherclass value="+value);}
}
class Childclass extends Fatherclass{
public int value;
void func(){
super.func(); //调用父类的func函数
value=200;
System.out.println("Childclass value="+value);
System.out.println(value);
System.out.println(super.value); //调用父类的成员变量
}
}
输出:
Fatherclass value=100
Childclass value=200
200
100
6.继承树追溯
所有构造函数的第一句话都是调用super();
Child--->Father-->Object(一层一层向上追溯)
Object-->Father-->Child(一层一层向下执行)
public class Test {
public static void main(String[] args) {
System.out.println("开始创建一个ChildClass对象......");
new ChildClass();
}
}
class FatherClass {
public FatherClass() {
System.out.println("创建FatherClass");
}
}
class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("创建ChildClass");
}
}
输出:
"开始创建一个ChildClass对象......
创建FatherClass
创建ChildClass