「java调用基类」如何调用基类函数
本篇文章给大家谈谈java调用基类,以及如何调用基类函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在java中用来调用父类构造方法的关键字是
- 2、如何使派生类对象只调用基类的构造函数
- 3、JAVA在基类构造函数里调用成员函数的问题
- 4、java中基类的构造函数中调用的方法被子类中的方法重写,那么究竟调用的是哪个方法?
- 5、java中子类调用祖父类(父类的父类)的方法
- 6、Java中调用基类构造函数的问题
在java中用来调用父类构造方法的关键字是
java中的关键字super有两种用法。
一、调用父类的构造方法,如:
class A
{
A(String s)
{
System.out.println(s);
}
}
class B extends A
{
B()
{
super("父类");
System.out.println("子类");
}
}
完整例子如下图:
二、调用父类的实例方法,如:
class A
{
void f1()
{
System.out.println("A.f1");
}
void f2()
{
System.out.println("A.f2");
}
}
class B extends A
{
void f()
{
super.f1();
f2();
}
void f2()
{
super.f2();
System.out.println("B.f2");
}
}
完整例子如下图:
如何使派生类对象只调用基类的构造函数
java版:class Base{ private String name; private int age; public Base(String name,int age){ this.name = name; this.age = age; }} class Child extends Base{ public Child(String name,int age){ super(name,age); }} C#版:class Base{ private string name; private int age; public Base(String name,int age) { this.name = name; this.age = age; }} class Child : Base{ public Child(string name,int age) :base (name,age) { }} 别忘了给java版添加get/set, 给C#版添加Property, 不然这样做基本没什么意义。
JAVA在基类构造函数里调用成员函数的问题
我也是初学者,但我的理解是这样:
当父类类A中存在 无参的构造方法时候,java虚拟机是 默认调用父类的无参构造方法,为什么是这样呢?因为子类要先继承父类的成员,才能把他爹的东西变成自己的东西(实际生活中也是这样)。
如何调用呢?当父类中有无参的构造函数时候,java虚拟机(jvm)就会给子类A默认添加一个 super();方法,这个方法的作用(父类空间的引用),就是调用父类的无参构造方法(如果super()括号里有参数的话,调用的是有参的构造函数)。不知道楼主是否懂得?
导致:new一个子类B对象的时候,java虚拟机为B添加一个super();为了调用父类的w无参构造方法,这时候发现父类的无参构造函数中有fun();方法,所以调用造子类的先执行(父类的fun()方法还没有执行到,子类的先执行,原因是new一个子类的时候,就给子类的fun方法开辟了一个空间,就已经存在了)。所以就比父类的fun方法先执行了。
楼主喜欢就记得采纳一下。不懂可以追问。
java中基类的构造函数中调用的方法被子类中的方法重写,那么究竟调用的是哪个方法?
在java中Base b=new Drived();代表了多态,父类的引用指向子类对象,这时候在调用方法时,遵循一个规律,父类引用调用方法时,如果该方法被子类覆盖了,那么在调用时会直接调用子类中的方法,如果这个方法没有被子类覆盖,那么就会报错(该错误会在编译时直接出现编译失败),这既是多态的好处(前期定义的代码可以使用后期的内容)也是多态的局限性(前期定义的代码不可以使用后期子类的特有的内容)。
java中子类调用祖父类(父类的父类)的方法
1、如果是多态,只能通过super的方式调用基类方法,具体决定于父类是否覆盖了父类的父类方法,如果父类的方法覆盖了父类的父类,则super无法调用到父类的父类方法。如果父类的方法没有覆盖父类的父类,则super可以调用到父类的父类方法。
public class A{//定义类A
public void show(){
}
}
public class B extends A{//定义子类B,继承类A
public void show(){
super.show();//调用父类A的方法show
}
}
2、如果不是多态,则可以直接访问方法名就能够访问到父类的父类方法
public class A{//定义类A
public void show(){
}
}
public class B extends A{//定义子类B,继承类A
public void me(){
show();//调用的是父类A中定义的show方法
}
}
Java中调用基类构造函数的问题
子类初始化时,必须是先初始化父类,没写super,就是
默认调用了父类无参的构造函数。你写了super,就按照你意思调用。
还不清楚,就说。
关于java调用基类和如何调用基类函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。