class MyParent {
public int a;
public MyParent() { a = 3; }
public void addFive() { a += 5; }
}
public class MyChild extends MyParent{
public int a;
public MyChild() { a = 8; }
public void addFive() { this.a +=5; }
public static void main(String[] args) {
MyParent foo = new MyChild();
foo.addFive();
System.out.println("Value: "+ foo.a);
MyChild foo2 = new MyChild();
foo2.addFive();
System.out.println("Value: "+ foo2.a);
MyParent foo3 = new MyParent();
foo3.addFive();
System.out.println("Value: "+ foo3.a);
}
==========================
执行后 分别打印:
Value:3; //父的属性a
Value:13;//子的属性a
Value:8;//父的属性a
//记住
java里继承 属性是不会被重写的 但是方法是会被重新的 所以MyChild foo2 = new MyChild(); 那么foo2有2个属性a 当前foo2.a是自己(子类)的属性 但是方法只有一个被重写的addFive(); 如果MyParent foo = new MyChild(); 那么也有2个属性a 但是当前foo.a是父的属性a 但是此时foo对象的方法被重写 只有一个 所以foo.addFive();是调用重写后的方法,如果MyParent foo = new MyParent();这样就很简单了 不再解释。
总结:
继承的话 相同的属性不会重写 会有2个 相同的方法会重写 只有一个。
同时看当前对象的句柄到底是指向子类还是父类的对象的。
分享到:
相关推荐
Java 中的继承是指一个类可以继承另一个类的属性和方法,这样可以实现代码的复用和提高开发效率。在 Java 中,继承使用关键字 `extends` 来实现。 Java 中继承的注意事项: 1. 重写(也叫覆盖,也叫重构):重写...
Java继承概念是Java编程语言中的一个基本机制,它允许开发者基于已经存在的类构造一个新类,复用父类的方法和域,并可以添加新的方法和域。同时,继承也可以提高代码的可读性和可维护性,避免重复的代码。
- 派生子类可以继承所有非 private 的属性和方法作为自己的成员。 - 覆盖是指子类重新定义父类已有的方法,与父类完全相同的方法名、返回值和参数类型列表。 - 重载与方法覆盖不同的是,重载不要求参数类型列表...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
本书通过对比Java和C++,使读者能够更好地理解Java的独特之处,并为初学者提供了一个逐步学习Java的框架。 第1章"对象入门"探讨了面向对象编程的基本原理,包括抽象、接口、隐藏实现、继承、多态以及异常处理。作者...
多态分为编译时多态和运行时多态,实现运行时多态需要上溯造型和方法重写。 final关键字用于声明不可变的变量、方法或类。抽象类不能实例化,且可以包含抽象方法。一个非抽象子类必须实现所有抽象父类的方法。接口...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
上溯造型是自动进行的,例如,一个子类对象可以被视为父类对象,因为它继承了父类的所有属性和方法。而下溯造型需要显式类型转换,如`Truck truck=(Truck)vehicle;`,这种转换需要确保实际对象确实是子类类型,否则...
1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 ...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 ...
第7章《多形性》深入讲解了Java的多态性,包括上溯造型的概念、方法绑定、扩展性和覆写。多态性是面向对象编程中的一个重要特性,它允许我们编写更加灵活和可维护的代码。 总之,《Thinking in Java》全面覆盖了...
第七章“多形性”进一步解释了Java的多态特性,包括上溯造型和方法的动态绑定,这在面向对象编程中是至关重要的,因为它允许编写更加灵活和可扩展的代码。 总的来说,《Thinking in Java》是一本全面的教程,不仅...
1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么?...
Java不支持多重继承,但它通过接口实现了类似的功能,一个类可以实现多个接口,从而获得多个接口中的方法。类的构造方法用于初始化新创建的对象,而成员方法是类的一般功能。方法调用的参数传递方式在Java中是按值...