package com.itheima.线程的创建.简写方式;
public class Test {
public static void main(String[] args) {
//对继承创建多线程的 一种简写:
new Thread(){
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("子线程==>"+i);
}
}
}.start();
//创建父类对象
Fu fu = new Fu();//这是new一个父类对象
//创建子类对象
new Fu(){//new的是子类对象
@Override
public void show() {
System.out.println("子类重写后的方法");
}
}.show();//执行的肯定是 "子类重写后的方法"
/*Bird bird = new BirdImpl();
bird.sing();*/
//new Bird(){ //只能调一个方法
//匿名内部类重写两个方法
Bird bird = new Bird(){ //可以调两个方法
@Override
public void sing() {
System.out.println("好听啊");
}
@Override
public void eat() {
System.out.println("好吃啊");
}
//}.sing();//这种形式 只能调一个方法
};
bird.sing();
bird.eat();
}
}
package com.itheima.线程的创建.简写方式;
public interface Bird {
public abstract void sing();
public abstract void eat();
}
/*
class BirdImpl implements Bird{
@Override
public void sing() {
System.out.println("好听..");
}
}
*/
package com.itheima.线程的创建.简写方式;
public class Fu {
public void show(){
System.out.println("Fu类的方法");
}
}
package com.itheima.线程的创建.简写方式;
public class Test2 {
public static void main(String[] args) {
//多线程创建方式一:extends 简写方式
new Thread(){
@Override
public void run() {
System.out.println("子线程");
}
}.start();
//多线程创建方式二:implements 简写方式
//普通写法 new Thread(new MyTask()).start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("任务");
}
}).start();
//用lambda表达式 继续简写
new Thread(()->{
System.out.println("任务");
}).start();
}
}
/* //多线程创建方式一:extends 普通写法
class MyThread extends Thread{
@Override
public void run() {
super.run();
}
}
*/
/* //多线程创建方式二:implements 普通写法
class MyTask implements Runnable{
@Override
public void run() {
System.out.println("任务...");
}
}*/