只有public的类才继承了java.lang中类吗
时间: 2024-02-19 07:57:49 浏览: 27
不完全是这样的。Java标准库中的类和接口是公共的(public),它们被设计成供所有Java程序使用。这些公共类和接口都定义在java.lang、java.util、java.io、java.net等包中。Java标准库中的类和接口都是被设计成可以被继承或实现的,无论是public还是其他访问修饰符。
因此,不仅public类可以继承java.lang中的类,任何类都可以继承这些类,只要这些类是public的。例如,你也可以定义一个自己的类,然后继承java.lang中的类,比如继承Object类:
```java
public class MyClass extends Object {
// ...
}
```
在Java中,所有类都隐式继承了Object类,因为Object类是所有类的根类。所以,即使你不显式地继承Object类,你的类也是继承了它的。
相关问题
只有用关键字public声明的类才自动从java.lang中继承
这个说法并不准确。Java中的所有类都隐式继承自`java.lang.Object`类,无论这个类是用什么关键字声明的。`java.lang.Object`是Java中所有类的根父类,即使你没有显式地继承它,也会默认继承它。
`java.lang`包中的类和接口都是公共的(public),也就是说,它们都可以被其他类访问和继承。其他包中的类和接口也可以被继承,只要它们被声明为public或protected。
需要注意的是,如果一个类没有被声明为public,那么它只能在同一个包中被访问和继承。而被声明为public的类则可以被其他包中的类访问和继承。
用java 编写 TestThread 类,通过继承 java.lang.Thread 实现多线程,线程体中打印线程名称。(22) 在 main()方法中创建 2 个线程对象并启动。
可以按照以下步骤来实现:
1. 创建一个类 TestThread,继承 java.lang.Thread。
2. 重写 run 方法,在方法中打印线程名称。
3. 在 main 方法中创建 2 个 TestThread 对象,并启动线程。
以下是示例代码:
```java
public class TestThread extends Thread {
public void run() {
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
TestThread thread1 = new TestThread();
TestThread thread2 = new TestThread();
thread1.start();
thread2.start();
}
}
```
运行程序,可以看到输出了两个不同的线程名称,表示两个线程同时在执行。