一、类的继承
//Java中的类可以实现多个接口,接口用来建立类与类的关联标准
//继承的基本思想:基于某个父类的标准,制定出新的子类,子类可以继承父类的的属性和方法,也可以增加原来父类不存在的属性和方法
class Text(){ //构造方法
//SomeSentence
}
protected void dosomething(){ //成员方法
//SomeSentence
}
protected Text dolt(){ //方法返回值位Text类型
return new Text();
}
class Text2 extends Text{ //继承父类
public Text2(){ //构造方法
super(); //调用父类构造方法
super.doSomething(); //调用父类成员方法
}
public void doSomethingnew(){ //新增方法
//SomeSentence
}
public void doSomething(){ //重写父类方法
//SomeNewSentence
}
public Text2 dolt(){
return new Text2(); //重写父类方法,返回值位Text2类型
}
}
//子类可以同初始化父类的操作完成对子类的初始化;既可以在子类的方法中调用super()语句调用父类的构造方法;也可以在子类中使用super关键字调用父类成员的方法;但是子类没有权限调用父类中被修饰为private的方法;只可以调用父类中修饰为public和protected的方法
//继承不仅仅是拓展父类的功能,还可以重新父类的成员方法
//注意:重写父类方法时不能降低权限修饰范围
//父类
class Parent {
Parent(){
System.out.println("调用父类Parent()的构造方法");
}
}
class SubParent extends Parent{ //继承Parent类
SubParent(){
System.out.println("调用子类SubParent()的构造方法");
}
}
public class Text extends SubParent{ //继承SubParent类
Text(){
System.out.println("调用子类SubParent()的构造方法");
}
public static void main(String args[]){
Text s=new Text(); //实例化子类对象
}
}
//继承机制使该类的父类自动初始化
//实例化子类对象时,父类无参构造方法将会被自动调用,但是有参构造方法并不能被自动调用,只能呢依赖于super关键字显示的调用父类的构造方法
//如果要用finalize()方法对对象进行清理,需要确保子类的finalize()方法的最后一个动作时调用父类的finalize()方法,以保证当垃圾回收对象占用内存时,对象所有的部分都能被正常终止
二、Object类
//在使用class关键字定义类时,用到了继承的原理,在Java中,所有的类都直接或是间接的继承了Java.lang.Object类。它是所有的类的父类,自定义的类和原有的类都要继承Object类,子类定义时省略了extends Object关键字
//Object类中getClass()、notify()、notifyAll()、wait()等方法不能被重写,这些方法定义时时final类型
getClass()方法
//该方法返回对象执行时的Class实例,然后使用此实例调用getClass()方法可以取得类的名称
语法如下:
getClass().getname();
toString()方法
//该方法功能时将一个对象返回字符串的形式
public class Anything{
//重写toString()方法
public String toString(){
return "在"+getClass().getName()+"类中重写toString()方法";
}
//打印本类对象
public static void main(String[] args) {
System.out.println(new Anything());
// 当用户打印类该类对象时,自动调用toString()方法
}
}