欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java和Python继承中的区别

程序员文章站 2023-12-21 21:34:34
...

继承方法中变量的选取

  1. Python
class A():
    a = 1
    def printA(self):
        print(self.a)
class AA(A):
    a = 2
    def printAA(self):
        print(self.a)

aa = AA()
aa.printA()
aa.printAA()

创建一个父类A,类变量a=1,有一个打印方法printA()打印a的值
再创建一个子类AA继承A,类变量a=2, 再写一个printAA()的方法打印a
创建一个子类AA的实例,然后在主程序中分别打印子类自己的printAA(),也打印继承来的printA(),看结果
输出:

2
2
  1. Java
父类A
public class A{
    int a = 1;
    public void p() {
        System.out.println(this.a);
    }
}
子类AA
public class AA extends A{
    int a = 2;
    public void p2() {
        System.out.println(this.a);
    }
}
主程序:
public class test {
    public static void main(String[] args) {
        AA t2 = new AA();
        t2.p();
        t2.p2();
    }
}

一模一样的写法
输出为

1
2
  1. 差别
    在Python这个例子中不论是子类自身的方法printAA还是继承来的方法printA,因为子类有a这个变量,所以打印的都是子类的a(=2)
    在Java中却不同,子类的方法p2()打印的是子类的变量a,继承来的p()打印的是父类的变量a

上一篇:

下一篇: