Object
所有类的超类,没有extends的类默认继承Object,其中方法适合所有类。
toString()
public String toString()
{ <span style="white-space:pre"> </span>getClass().getName() + '@' + Integer.toHexString(hashCode()) }
class Obj //默认继承Object { } class Demo { <span style="white-space:pre"> </span>public static void main(String[] args) { <span style="white-space:pre"> </span>Obj o=new Obj(); <span style="white-space:pre"> </span>System.out.println(o); //相当于System.out.println(o.toString()); } }
内部类
类中可以定义类,内部类可以被public和static修饰。
内部类可以访问外部类的成员,外部类不能访问内部类成员。
static修饰后的内部则变成外部类,不能访问外部内非静态成员。
内部类创建对象从外部类之外调用
Outer o=new Outer(); //Outer为外部类,Inner为内部类。 Outer.Inner i=o.new Inner(); i.show(); //show为内部类方法。
方法内部类访问方法中的变量,其变量必被final修饰。
内部类是可以继承接口和父类的。
匿名内部类
interface Student { void say(); } class Person { void get(Student s) { s.say(); //其实就是多态。 } public void test() { get(new Student() //创建一个继承Student的匿名对象,其方法一起传到get方法中。 { public void say() { System.out.println("I'm a student."); } } ); } } class PersonDemo { public static void main(String[] args) { Person p =new Person(); p.test(); } }