
正文
java继承代码分析 java 继承
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
谁能帮我把这个java代码分析一下我被绕晕了
//哈哈java继承代码分析,感觉这道题真心好啊。不知道楼主是从哪里看到的。
//首先这道题楼主要明白以下两点java继承代码分析:
//1:继承时java继承代码分析,子类会隐藏父类相同的方法,要调用父类方法就必须使用super关键字。
//2:向上转型时,子类会丢失和父类不同的方法,可以使用父类的不同名的所有方法。
public class PolyDemo09{
public static void main(String[] args){
A a1 = new A();
A a2 = new B();//B类型向上转型丢失与A类不同方法
B b = new B();
C c = new C();
D d = new D();
System.out.println("⑴ " + a1.show(b));//B类的父类是A,所以A and A
System.out.println("⑵ " + a1.show(c)); //C类父类的父类是A,D和他是同级。所以A and A
System.out.println("⑶ " + a1.show(d));//D类方法有,所以不会向上转型,所以A and D
System.out.println("⑷ " + a2.show(b)); /*注意这时候a2的两个方法其实是
public String show(D obj) {
return ("A and D");
}
public String show(A obj) {
return ("B and A");
} B的父类是A,所以B and A
*/
/**/
System.out.println("⑸ " + a2.show(c));//C的父类的父类是A,所以B and A;
System.out.println("⑹ " + a2.show(d)); //D有对应方法,所以A and D
System.out.println("⑺ " + b.show(b)); /*这个就是继承java继承代码分析了,继承除了隐藏父类中和子类同名的方法外,在子类中可以直接使用父类的方法。所以B and B
所以就变成了
public String show(D obj) {
return ("A and D");
}
public String show(B obj) {
return ("B and B");
}
public String show(A obj) {
return ("B and A");
*/
System.out.println("⑻ " + b.show(c)); //C 的父类是B,所以B and B
System.out.println("⑼ " + b.show(d));//D有相应方法,所以A and D
}
}
class A {
public String show(D obj) {
return ("A and D");
}
public String show(A obj) {
return ("A and A");
}
}
class B extends A {
public String show(B obj) {
return ("B and B");
}
public String show(A obj) {
return ("B and A");
}
}
class C extends B {
}
class D extends B {
}
相关问答
Q1: Java关于继承的问题,代码如下。
变量相同字父类不会被覆盖java继承代码分析,而方法相同子类会覆盖父类方法java继承代码分析,java在调用方法时会调用实际new时对象的方法java继承代码分析,new Student 那么如果Student中有fun则调用java继承代码分析,没有才查找父类中有没有fun方法,而属性会直接根据引用调用,引用是Person,就调用Person的i,写程序时是根据引用来写的,所以不可能java继承代码分析你引用Person,会写出子类的属性,比如Student有个自己的属性j,你通过to肯定找不到j,如果引用是Student则调用Student的i,
Q2: java继承:子类可以继承父类的私有属性和方法吗,那这段代码应该怎么理解,如图,this指向的是子类对象,
子类会继承父类的私有属性和方法,但子类新添加的方法不能访问它们,必须通过从父类继承的非私有方法、父类的构造方法来访问它们。这个例子就是通过父类的构造方法来访问的子类继承自父类的私有属性。
Q3: java继承代码加讲解谁能告诉我啊 谢了
继承的理解非常简单,就是父亲的可以继承的东西,子类在不声明的情况下都会拥有
这个不像现实的继承是可以选择的,java的继承,不论优缺点
继承的作用,就是描述不同类,不同对象之间的联系
在java中,继承只是个开始,继承是为了多态
Q4: 简述JAVA中继承实现代码复用
看看下面这个例子,就会明白了:JAVA中继承可以实现代码复用,
由于在父类中已经定义的方法,被子类继承以后,就可以使用,实现了代码的复用
class Father{
private int moneyDollar=300;
int moneyHK=200;
int add(int x,int y){
return x+y;
}
}
class Son extends Father{
int moneyRMB=800;
public void changMoneyHK(int x){
moneyHK=x;
}
public void changMoneyRMB(int x){
moneyRMB=x;
}
int subs(int x,int y){
return x-y;
}
}
class GrandSon extends Son{
int multi(int x,int y){
return x*y;
}
}
public class Example5_1{
public static void main(String args[]){
int a=5,b=3;
Son son=new Son();
GrandSon sunzi=new GrandSon();
son.changMoneyHK(666);
son.changMoneyRMB(5000);
System.out.println("儿子的港币是继承的属性,当前的值是:"+son.moneyHK);
System.out.println("儿子的人民币是新增的属性,当前的值是:"+son.moneyRMB);
System.out.printf("减法是儿子新增的功能,%d-%d等于%d\n",a,b,son.subs(a,b));
System.out.printf("加法是儿子继承的功能,%d+%d等于%d\n",a,b,son.add(a,b));
System.out.println("孙子的港币和人民币都是继承的属性,,当前的值是:");
System.out.println("港币:"+sunzi.moneyHK+" 人民币:"+sunzi.moneyRMB);
System.out.printf("乘法是孙子新增的功能,%d*%d等于%d\n",a,b,sunzi.multi(a,b));
System.out.printf("加法是孙子继承的功能,%d+%d等于%d\n",a,b,sunzi.add(a,b));
System.out.printf("减法是孙子继承的功能,%d-%d等于%d\n",a,b,sunzi.subs(a,b));
}
}
Q5: Java继承,new一个子类,父类中代码执行情况
你好:
我的理解是:当创建子类对象时调用过程: 父类static -子类static-父类普通赋值语句-子类普通赋值语句-父类构造-子类构造。
这是之前写过的一篇分析博客
网页链接
希望对你有所帮助。如果有错误也欢迎指出 。
关于java继承代码分析和java 继承的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







