java中java子类继承父类属性,子类声明并实例化对象,这个对象怎么调用父类方法的 如图 详细一点谢谢

java中创建子类实例怎么调用父类的覆盖方法_百度知道
java中创建子类实例怎么调用父类的覆盖方法
为父类,B为子类,都有一个m()方法,事例化一个子类对象后怎么调用父类方法呢才学;((A)b).m();这样为什么还是调用的B类的方法呢是不是调用父类覆盖方法只能用SUPER呢还有,B b=new B()
我有更好的答案
通过super调用父类的方法举例:public&class&Father{//定义父类&&&public&void&s(){//定义父类的方法s&&&}}public&class&Son&extends&Father{//定义子类son,继承父类father&&&public&void&s(){//定义子类的s方法,覆盖了父类的s方法&&&&&super.s();//通过super调用父类的s方法&&&}}补充:Java中,在继承关系中,super指向当前对象里面的父对象。
采纳率:74%
来自团队:
这种方式,你虽然上溯造型到了父类; b.m(); 这种方法和你写的实际是一个效果,不知道到您是否不满意,不满意的话可以发消息继续讨论。B b=new B(),所以调用的还是子类方法,注意:内存中还是子类对象。((A)b)。所以,总结如下Foible 朋友的说法不对,调用的还是子类的方法(也就是所:方法的实现,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。用static的情况不讨论的情况下不讨论是这样的,最后是在子类中实现的);
表面上看起来是父类对象了,但是由于内存中是子类对象。如果子类重写了父类的方法,那么。A b=new B().m():如果子类没有重写父类的方法,虽然上溯造型到了父类,由于子类重写了父类的方法,实际上是实例化了子类的对象
本回答被提问者采纳
).println(&
这样可以调用GrandPa的Method
Father.Method().
S//)!&quot。可以考虑使用静态static方法
System.out.println(&Hello,
GrandPa!&);
System.out.println(&Hello,
Fathergemouzhi(gemouzhi)的方法或是static方法都能够实现;And
GrandPa.Method()!&quot
汗..2楼的不要误导人啊.其实这个就是java中的多态的表现.java中有种思想是面向接口编程的.意思就是以接口为标准,类来实现接口.举个例子 A是一个接口(interface)public class B implements A{
}以后声明的时候 A a=new B();这样调用B中实现了A中的方法时 a.XX();其实XX是B的方法,虽然a是声明为A,但java运行时会自动检查它的类型(此为B),这就是java多态的一种表现.此处虽不是接口 ,但道理是一样的.如果想在子类中调用父类中的东西 用super关键字就行了
应该这样A 为父类,B为子类,都有一个m()方法, A b=new B(); b.m(); 这就是调用A类的m方法了。
A 为父类,B为子类,都有一个m()方法.B b = new B();b.m();调用子类的m()方法可以试试这种方法.public class test{ public static void main(String[] args){
B b = new B();
b.m(&子类&);
b.getm(&子类&);
} }class A{ public void m(String str){
System.out.println(&父类的m()方法:&+str); }}class B extends A{ public void m(String str){
System.out.println(&子类的m()方法:&+str); } public void getm(String str){
super.m(str); }}
子类调用父类覆盖方法(也就是与父类重名的方法)只能用super(),还有,你也可以重新实现这个方法,这叫方法的重写;
其他5条回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Java继承后能通过子类创建的对象修改父类里面的属性吗?_百度知道
Java继承后能通过子类创建的对象修改父类里面的属性吗?
我有更好的答案
out.public class Test1 { private int t1 = 1; public int getT1() {
return t1; } public void setT1(int t1) {
this.t1 = t1; } }package com.
System.out.println(t.getClass());
System能不能贴出代码,说明你想要的结果.println(t.getT1()); }}控制台;public class Test2 extends Test1 { public static void main(String[] args) {
Test1 t = new Test2();
t.setT1(3),继承分好多种的,属性也分好多种的package com,父类类型也有好多种:class com
采纳率:13%
不可以的,子类无法修改父类里的属性
为您推荐:
其他类似问题
java继承的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在java中实例化一个子类对象赋给父类对象引用或一个实现了接口的类的对象赋给接口的引用,有什么好处?_百度知道
在java中实例化一个子类对象赋给父类对象引用或一个实现了接口的类的对象赋给接口的引用,有什么好处?
在java中实例化一个子类对象赋给父类对象引用或一个实现了接口的类的对象赋给接口的引用,有什么好处? 请详细的说明一下,当然能举例的话,就更好了!!
我有更好的答案
int main(int argc,这样其基类的对象就可以执行不同的操作了,但它可以适应于这个类的家族。这种现象又称为多态性。而实现多态性的手段又叫称动态绑定(dynamic binding)。简单的说,然后这些子对象中的任何一个可以赋给其基类的对象,当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用。例子  在C++中:class A {public:A() {}virtual void foo() {cout &lt。从程序设计的角度而言,多态可以这样来实现(以java语言为例);pa.simpleCall()则显然是调用Child_A的方法;Parent pa = new Child_B().如果把virtual去掉,将显示:This is A.前面的多态实现使用抽象类,可以在特定的情况下; &&}};This is B,写出通用的代码,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,而不是儿子的行为像父亲。也就是说,父亲的行为像儿子:This is B;/具体的实现细节;}}&#47,做出通用的编程;}public class Child_A implements Parent{public void simpleCall(){/ endl:我们可以只针对基类写出一段程序。举个例子:从一个基类中派生,在认识这个类的家族时,就是把导出类的对象当作基类的对象:Parent pa = new Child_A();/具体的实现细节;}}public class Child_B implements Parent{public void simpleCall(){&#47,我们对于抽象的父类或者接口给出了我们的具体实现后,pa 可以完全不用管实现的细节,只访问我们定义的方法;}};class B , char* argv[]) {A *a = new B();a-&foo();if(a != NULL)return 0,然后其子类也有这个方法,并定义了虚方法; &This is A.& &lt:B() {}void foo() {cout && &quot:public interface Parent {public void simpleCall();&lt,产生不同的结果,从而对应着不同的属性和方法,但行为不同。实际上你是在通过其基类来访问其子对象的,以适应需求的不断变化。赋值之后这是多态的一种应用: 把不同的子类对象都当作父类来看: public A {public.在java中:多态;/当然还可以有其他的实现然后,我们就可以看到多态所展示的特性了.&quot,意味着一个对象有着多重特征,这种认识又叫作upcasting。这样认识的重要性在于。比如从某个基类继承出多个对象,其基类有一个虚方法Tdoit,建立一个父类的对象,响应一个虚命令,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作,因为编译器会自动就找出合适的对象来执行操作,你要做的就是一个赋值操作。使用继承性的结果就是可以创建一个类的家族;pa.simpleCall()则是在调用Child_B的方法。所以,就可以了。事实上,这就是多态所起的作用;&}这将显示,表现不同的状态,是面向对象的程序设计语言最核心的特征。多态,可以屏蔽不同子类对象之间的差异
采纳率:41%
那么用父类来引用子类绝对可行,但反过来就不行了,这涉及到一个绑定问题(楼主自行搜索动态绑定即可,我手机码字),其实不用父类引用也可以的子类继承了父类的属性和方法或者实现了某个接口
这不就实现了,多态了吗?
其他1条回答
为您推荐:
其他类似问题
实例化的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 java父类调用子类方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信