顶点覆盖问题java代码,顶点覆盖问题java代码解析

帮我解释一道JAVA题目,详细点哦,我基础不好,谢谢

从最后的Class1类开始,创建Child类的对象,对象名为myC,引用对象myC的方法printAll(),由于Child类是Parent派生的子类,在Parent的子类Child是定义了一个和父类同名的方法printMe(),覆盖了父类的printMe()方法,用super.printMe();是为了调用父类的同名方法,在此先输出parent

创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站设计、成都网站制作,塑造企业网络形象打造互联网企业效应。

接着运行,this.printMe();语句,this表示是当前类,就是调用自己定义的printMe()方法,输出child

然后调用printMe();方法,如果调用的时候没有声明是调用父类的方法,则默认为是调用当前类的方法,所以输出child

本人也是菜鸟,不知道这么说你懂不懂。

用JAVA定义一个描述点的point类.它有两个成员变量:横坐标x,纵坐标y

实现思路就是有一个类Point,之后这个类有两个私有成员变量,之后可以通过set和get方法进行赋值和数值读取:

public class Point {

private String x;

private String y;

/**

* 默认构造函数

*/

public Point(){

}

/**

*有x和y的构造方法。

*/

public Point(String x,String y){

this.x=x;

this.y=y;

}

public String getX() {

return x;

}

public void setX(String x) {

this.x = x;

}

public String getY() {

return y;

}

public void setY(String y) {

this.y = y;

}

}

解释一下JAVA的代码和运行结果,有问号的代码不理解,解释一下代码为什么错,能解释多少是。多少详细点

class A {

double f(double x, double y) {

return x + y;

}

int getNumber(int a) {

return a + 1;

}

static int g(int n) {

return n * n;

}

int m;

int getM() {

return m;

}

int seeM(){return m;}

}

class B extends A {

double f(int x, int y) {

return x * y;

}

int getNumber(int a) {

return a + 100;

}

int xx() {

return 11;

}

static int g(int n) {

int m = A.g(n);

return m + n;

}

int m;

int getM() {

return m + 100;

}

}

class E {

public static void main(String[] args) {

B b = new B();

System.out.println(b.f(3, 5));// 15.0

System.out.println(b.f(3.0, 5.0)); // 8.0

A a = new A();

System.out.println(a.getNumber(10));// 11

a = new B();// 原因为A的引用,B的对象,A的引用a指向B对象,此时的a只会拥有A的方法,但是如果B中有方法覆盖了A的方法,则会使用B的方法

System.out.println(a.getNumber(10));// 110

System.out.println(b.f(10.0, 8.0)); // 18.0

System.out.println(b.g(3));// 12

a = new B();// 原因为A的引用,B的对象,A的引用a指向B对象,此时的a只会拥有A的方法,但是如果B中有方法覆盖了A的方法,则会使用B的方法

System.out.println(a.f(10.0, 8.0)); // 18.0

System.out.println(a.g(3));// 9

b.m = 20;

System.out.println(b.getM());// 120

A a1 = b;// a1指向对象b

a1.m = -100;// a1变量赋值-100

System.out.println(a1.getM());// 120: a1.getM()==实质上已经被b的getM覆盖,且此时用的是b的变量100,调用之后结果为20+100 = 120

System.out.println(b.seeM());// -100: b的seeM()来自父类A,当然会调用父类的A.m=-100,所以此时结果为-100

}

}

class Father {

private int money = 12;

float height;

int seeMoney(){return money;}

}

class Son extends Father {

int height;

int lookMoney() {

int m = seeMoney();

return m;

}

}

class EE {

public static void main(String[] args) {

Son erzi = new Son();

// erzi.money = 300;// 错误原因在Son没有money这一属性,什么样的引用对应什么样的变量和方法

// erzi.height = 1.78F;// 类型错误

}

}

abstract class XX {

// 只能设置可视性修饰符“公用”或“受保护”中的一个

public static void cry(){}

abstract float cry1();

}


文章名称:顶点覆盖问题java代码,顶点覆盖问题java代码解析
文章URL:http://azwzsj.com/article/dssghce.html