*类名作为方法的形参和返回值,其实需要的和返回的是该类的对象,看下面案例:
*方法的形参是抽象类名,其实需要的是该类的子类对象
*方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
*方法的形参是接口名,其实需要的是该接口的实现类对象
*方法的返回值是接口名,其实返回的是该接口的实现类对象
概念:
一个类定义在另一个类里面,这个里面的类称为内部类,这个外面的类称为外部类
内部类也叫嵌套类,密封类.我们重点掌握匿名内部类。
有些子类或接口的实现类只创建一次对象,可以用匿名内部类替换,可以少写很多.Java文件格式
new 类名/接口名() {重写方法}
2.格式的理解
匿名的子类对象/匿名的接口实现类对象
3.内部类在实际开发中的应用
接口多态
代码演示:
注意:Object是类层次结构的根类.任何类都直接或间接继承Object类,包括数组
class Animal {
}
class Cat extends Animal {
}
打印一个对象,其实就是打印对象的toString()返回值
Person p = new Person("jack",19);
System.out.println(p); //和下面效果一样
System.out.println(p.toString());//和上面效果一样
注意:
//注意: p 和 p.toString() 不是一回事
// 只是 System.out.println(p); 和 System.out.println(p.toString());效果一样
// System.out.println(p == p.toString()); //都不是一个类型,不能使用==比较
Object类的toString()方法:默认返回的是对象的地址值,一般没什么意义,我们一般会重写toString()返回对象成员变量的字符串形式,使用快捷键 alt+insert即可
双击shift,输入Object,可以打开这个类的源码
代码演示:
原文:https://www.cnblogs.com/cjhome/p/11402673.html