话不多说,参考:
java中的匿名内部类总结 - Nerxious - 博客园www.cnblogs.com我好像很久很久没看过这东西了。。
看到一个面试题:
class test
{
public static void main (String[] args) throws java.lang.Exception
{
Thread t1=new Thread(){
public void run(){
System.out.println("t1");
}
};
Thread t2=new Thread(){
public void run(){
System.out.println("t2");
}
};
t1.start();
t2.start();
}
}
问这个输出的是啥。
我反手第一思考,这不就是线程调度的随机性嘛,应该是不确定。然后我再看一下这创建线程的方式,感觉怎么有点陌生啊。不都是继承thread类或者实现runnable接口或callable接口吗?这?
然后答案还有个不确定。。
然后我就犹豫不决了。
回来百度看到了上面这个链接,原来这是Java的匿名内部类啊。
还有一种写法:
何柄融:零星知识小总结zhuanlan.zhihu.com这是我两年前写的。。
这样一来对匿名内部类就基本不会再傻逼了。
方法的重载:
参考:
Java 重写(Override)与重载(Overload)www.runoob.com![cdf1f8b8bb7feb9b06f87845b482122e.png](https://i-blog.csdnimg.cn/blog_migrate/486ca7ef00de98630218cf2477c0d302.jpeg)
重载(Overload)
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常用的地方就是构造器的重载。
重载规则:
- 被重载的方法必须改变参数列表(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
我记得的是参数类型不同就ok了,然后没注意到返回类型可以相同也可以不相同,这个就很细节得导致了我的失败。我以为都要返回类型要相同。。难受。