Java中new对象调用方法和直接用类调用方法有什么区别
时间: 2023-02-11 14:40:50 浏览: 91
在 Java 中,使用 new 关键字创建对象和直接使用类调用方法的区别在于,使用 new 关键字创建的对象是在堆中分配空间,每个对象都有自己的状态和行为。而使用类调用方法时,方法的调用不依赖于特定的对象,而是依赖于类的状态和行为。
相关问题
java继承中为什么子类可以直接调用父类的方法不需要new
在Java中,子类可以直接调用父类的方法是因为子类继承了父类的属性和方法。当子类继承自父类时,它会继承父类的所有非私有成员(属性和方法),包括公共的、受保护的和默认访问修饰符的成员。
通过继承关系,子类可以访问父类的方法,无需创建父类的对象(使用new关键字)。这是因为子类在继承时就获得了父类的方法,并且可以在子类中直接使用这些继承的方法。
子类调用父类的方法时,可以通过使用super关键字来引用父类的方法。super关键字表示对父类的引用,通过它可以调用父类的构造方法或普通方法。
需要注意的是,如果父类的方法被子类重写(覆盖)了,那么在子类中调用该方法时,实际执行的是子类中的方法而不是父类中的方法。这种情况下,如果需要调用父类中被重写的方法,可以使用super关键字来引用父类中的方法。
java中相同的类,不同方法之间怎样调用方法中的对象
如果两个类的方法中都有相同的对象,可以通过创建该对象的实例来调用它们。假设有两个类A和B,它们都有一个名为obj的对象,可以通过以下步骤来调用它们的方法:
1. 在A类中创建obj对象的实例:
```java
A objA = new A();
```
2. 在B类中也创建obj对象的实例:
```java
B objB = new B();
```
3. 接下来,可以通过这些对象来调用它们的方法。例如,在A类中有一个名为methodA()的方法:
```java
public void methodA() {
// do something with obj
}
```
那么,在A类中可以通过objA对象调用它:
```java
objA.methodA();
```
4. 同样地,在B类中也有一个名为methodB()的方法:
```java
public void methodB() {
// do something with obj
}
```
那么,在B类中可以通过objB对象调用它:
```java
objB.methodB();
```
总之,只要创建了正确的对象实例,就可以在不同的类中调用相同的对象。