「java被覆盖的方」JAVA 覆盖
本篇文章给大家谈谈java被覆盖的方,以及JAVA 覆盖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 方法覆盖
- 2、java中方法的覆盖及重载是什么意思
- 3、编写Java程序实现方法覆盖
- 4、java如何调用父类的父类中被覆盖的方法
- 5、java中是不是任何方法都可以被覆盖
- 6、java方法覆盖问题
java 方法覆盖
所谓覆盖实际上是父子类之间的关系。
当父类有个方法为a()时,继承它的这个子类也有个方法为a()这就叫覆盖。
如:
父类
public
class
father
{
public
a()
{
System.out.print("我是父类的a方法");
}
public
b()
{
System.out.print("我是父类b方法");
}
}
子类
public
class
son
extends
father
{
public
a()
{
System.out.print("我是子类的a方法");
}
}
当调用时这样
son
s
=
new
son();
s.a();
s.b();
输出结果为:
我是子类的a方法
我是父类的b方法
java中方法的覆盖及重载是什么意思
覆盖是override方法重写 重载是overload
按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。
重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。
编写Java程序实现方法覆盖
class A{
int i;
public A(){};
public A(int i){
this.i=i; //被重载的构造方法
};
public void method()
{
System.out.println("the orginal method!");
}
}
class B extends A{
public void method(){
System.out.println("the Second method!");
//被覆盖的方法
}
}
java如何调用父类的父类中被覆盖的方法
子类已经覆盖了父类,并且重写了父类的方法, 一般来说, 就没有必要用子类调用父类中被覆盖的方法了.(否则就不要覆盖了啊)
要实现也是可以的 ,我们 需要为子类提供一个其他的方法,用于去调用父类中被覆盖的方法
参考代码
class A {//父类
public void print() {
System.out.println("父类的print方法");
}
}
class B extends A {//子类
@Override
public void print() {
System.out.println("子类的print方法");
}
// 在子类里创造一个方法去调用父类的方法
public void fuLeiPrint() {
super.print(); //super指向父类
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.print();
b.fuLeiPrint();
// A a =(A)b; // 这样强转还是打印的子类的方法,因为内存中还是子类
// a.print();
}
}
java中是不是任何方法都可以被覆盖
只有子类继承父类的方法才可以覆盖,父类私有的方法不可以覆盖。final修饰的方法不可以被覆盖的
java方法覆盖问题
改动下让你看结果:
public class Son extends Parent {
@Override
public void add() {
System.out.println("Son.add() " + this);
super.add();
}
@Override
public void addAll() {
System.out.println("Son.addAll() " + this);
super.addAll();
}
public static void main(String[] args) {
Son son = new Son();
son.addAll();
}
}
class Parent {
public void add() {
System.out.println("Parent.add() " + this);
}
public void addAll() {
System.out.println("Parent.addAll() " + this);
add();
}
}
Son.addAll() test.Son@14318bb
Parent.addAll() test.Son@14318bb
Son.add() test.Son@14318bb
Parent.add() test.Son@14318bb
Parent中的this指向的是当前son这个对象,也就是说你可以当作代码上看是Parent,但实际上在实例化时它们已经成为了一个整体son。
add()方法被覆盖后,你调用add()就是this.add(),除非你显式的调用super.add()
关于java被覆盖的方和JAVA 覆盖的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。