java中的继承问题,以为是学会了java,结果最简单的一个java继承问题都难倒了
请牛人指点一二,请看源码:
类A
package heritage;
class A{
int x, y;
public void setValue(int i, int j) {
x = i;
y = j;
}
int multiply(){
return x * y;
}
}
继承A类的B
package heritage;
class B extends A{
int x, y;
B(int i, int j) {
x = i;
y = j;
}
int multiply(){
return x * y;
}
}
测试类Test
package heritage;
public class Test {
public static void main(String[] args) {
B subObj = new B(6, 9);
subObj.setValue(7, 8);
int m = subObj.multiply();
System.out.println(m); //54
}
}
输出是54为何??
子类的x,y屏蔽了从父类继承而来的x,y调用父类的setValue只能改变父类继承而来的x,y,而不能改变子类中的x,y,如果想得到56,可以将子类中的x,y去掉即可。
java中的静态方法:
package staticmethod;
public class A {
public static void simpleMethod() {
System.out.println("hello");
}
public static void main(String arg[]) {
A.simpleMethod();
A a = null;
a.simpleMethod(); //静态方法和实例没有关系,所以没有空指针的错误
}
}
执行结果:
hello
hello
分享到:
相关推荐
在Java中,默认情况下所有类都继承自 `Object` 类,而 `Object` 类提供了一个 `equals()` 方法。如果我们想要比较自定义类的对象,通常需要重写这个方法。例如,如果有一个名为 `Monster` 的类,并希望比较两个 `...
《明明白白学Java大学霸》是一本专为Java初学者设计的学习指南,旨在帮助读者深入浅出地掌握Java编程语言。"明明白白学"强调的是清晰易懂的教学方式,"大学霸"则暗示了本书的目标是培养精通Java的技术高手。通过这...
- **继承**:继承是面向对象编程中的一个重要特性,它使得一个类可以从另一个类那里继承方法和字段。继承的基本形式是由一个类派生出一个新的类,新类称为子类或者派生类,而原有的类称为父类或者基类。Java支持单...
面向对象编程(OOP)是Java的一个核心特点,因此深入学习OOP的相关概念是必不可少的。这部分包括但不限于: - **继承**:了解子类如何继承父类的属性和行为。 - **构造器**:掌握如何创建对象及其初始化过程。 - **...
在Java中,每个程序至少包含一个类。例如,`public class TheTestApplet extends Applet`声明了一个名为`TheTestApplet`的公共类,它继承自`Applet`类。`extends`关键字表示`TheTestApplet`是`Applet`的子类,`...
Java异常处理是Java编程语言中的一个关键特性,它允许程序员优雅地处理程序运行时可能出现的错误和不正常状况。在Java中,异常是程序执行过程中出现的问题,它们中断了正常的控制流程,使得程序无法继续按照预期的...
这种方式更灵活,因为Java不支持多重继承,而可以实现多个接口。 线程间的通信是多线程编程中不可或缺的一部分。Java提供了多种机制,如`wait()`, `notify()`, 和 `notifyAll()`方法,这些方法在`Object`类中定义,...
首先,我们要明白Java是一种面向对象的编程语言,它的核心特性包括封装、继承和多态。在解决Java拓展思维练习题时,你需要理解和应用这些基本概念。例如,你可能会遇到设计一个类或接口来满足特定需求的问题,这就...
"没整明白这些问题 别说你学过JAVA(pdf格式)"这句标题暗示了我们将面临一系列Java学习和面试中常见的挑战,而描述则告诉我们这里有100道面试常考题目,并且提供了一份简易教程作为辅助学习材料。标签进一步强调了...
在java中,可以通过创建线程来实现多线程,每个线程代表一个程序的执行流程。多线程可以使得程序在处理多个任务时能够更加高效。 java的类库也非常丰富。它提供了标准库,包括了各种功能,比如图形用户界面GUI、...
在Java编程语言中,多线程是核心特性之一,它使得程序可以同时执行多个不同的任务,从而提高了系统资源的利用率和程序的响应速度。本文将深入探讨Java中的多线程概念,以及如何通过实践来提升对这一主题的理解。 ...
虽然基本的`FileOutputStream`不能直接满足这个需求,但可以通过继承`FilterOutputStream`并覆盖其方法来实现。 ##### 2.2 FilterInputStream的各种类型 - **DataInputStream**: 提供了从字节流中读取基本数据类型...
通过分析这个项目,我们可以了解Java编程基础,以及如何利用Java实现一个简单的游戏逻辑。 首先,我们要明白Java的基础知识。Java是面向对象的语言,其核心概念包括类、对象、接口和继承等。在这个坦克大战游戏中,...
《JAVA版《魔塔24层》:初学者的编程之旅与源码解析》 Java是一种广泛应用于各领域的编程语言,特别在开发桌面应用、Web应用以及移动应用...对于想要深入学习Java编程和游戏开发的朋友们,这是一个不容错过的起点。
Java学习并不像传统数学那样通过几个基本原理推导出所有问题。而是需要实际操作,理论与实践相结合。在遇到困难时,不要停滞不前,而是寻找其他资源或尝试不同的理解方式。 其次,从实践入手。安装JDK,配置好开发...
- **线程创建**:Java提供了两种方式创建线程,一是通过实现Runnable接口,二是继承Thread类。 - **线程生命周期**:新建、就绪、运行、阻塞和终止五种状态。 2. **线程同步与通信** - **synchronized**:用于...