当前位置: 首页 > 知识库问答 >
问题:

Java中的多重继承?[副本]

乜胜泫
2023-03-14

这里这个程序似乎使用了多重继承。但是Java不支持多重继承,那么这个程序是如何工作的呢?

当两个类StudentProfessor继承基类Person时,编译这段代码的原因是什么?

class Person
{
    private String name;
    private int age;
    private int val;

    private int value(int sal)
    {
        return sal/100;
    }

    public Person(String name, int age, int sal)
    {
        this.name = name;
        this.age = age;
        val = value(sal);
    }
    public void valOverride(int val)
    {
        this.val = val;
    }   

    public String getName()
    {
        return name;
    }
    public int getAge()
    {
        return age;
    }
    public int getVal()
    {
        return val;
    }
}

class Student extends Person
{
    Student(String name, int age, int sal)
    {
        super(name,age,sal);
    }
}

class Prof extends Person
{
    Prof(String name, int age, int sal)
    {
        super(name,age,sal);
    }
}

public class AbsDemo
{
    public static void main(String[] args)
    {
        Student s = new Student("prasi", 21, 18000);
        Prof pr = new Prof("david",38,25000);
        System.out.println(pr.getVal());
        pr.valOverride(22);
        Person p = new Student("prasanna", 22, 12000);
        System.out.println(s.getName());
        System.out.println(p.getName());
        System.out.println(s.getVal());
        System.out.println(pr.getVal());
    }
}

共有1个答案

卫甫
2023-03-14

Java“不支持多重继承”,因为一个类只能扩展另一个类。

一个父类的多个子类没有错。

 类似资料:
  • 问题内容: 为了完全理解如何解决Java的多重继承问题,我有一个经典的问题需要澄清。 可以说我有类此有子类和我需要做一个类,从扩展和自既是一只鸟和一匹马。 我认为这是经典的钻石问题。从我能理解经典的方式来解决,这是使,和类接口,并实现从他们。 我想知道是否还有另一种方法可以解决仍然可以为鸟和马创建对象的问题。如果有一种能够创造动物的方法,那也很棒,但不是必须的。 问题答案: 你可以为动物类(生物学

  • 假设我有类,它有子类和,我需要创建一个类,它扩展自和,因为既是鸟也是马。 我想这就是经典的钻石问题。据我所知,解决这个问题的经典方法是将、和类作为接口,并从它们实现。 我想知道是否有另一种方法来解决这个问题,在这个方法中,我仍然可以为鸟和马创建对象。如果有一种方法也能创造动物,那将是伟大的,但不是必要的。

  • 主要内容:多继承下的构造函数,命名冲突在前面的例子中,派生类都只有一个基类,称为 单继承(Single Inheritance)。除此之外, C++也支持 多继承(Multiple Inheritance),即一个派生类可以有两个或多个基类。 多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的 Java、 C#、 PHP 等干脆取消了多继承。 多继承的语法也很简单,将多个基类用逗号隔开即可。例如已声明了类A

  • 我在一个有这些类的项目中工作: 这些coures类具有其他方法和属性。 如果可以的话,它应该能够使用来自Square和RedRectangle的方法,否则它应该使用来自Rectangle的方法,并且它应该迫使开发人员从他自己的代码中为所有在Square和RedRectangle中被重写的方法编写代码。 我实际上知道这是多重继承,Java不支持它,但我需要实现这种行为。 我试图使用Square和Re

  • 本文向大家介绍Java和多重继承,包括了Java和多重继承的使用技巧和注意事项,需要的朋友参考一下 Java不支持多重继承。这意味着一个类不能扩展一个以上的类。因此,跟随是非法的 但是,一个类可以实现一个或多个接口,这帮助Java摆脱了多重继承的可能性。extend关键字仅使用一次,并且父接口在逗号分隔的列表中声明。例如,如果Hockey接口同时扩展了Sports和Event,它将被声明为- 下面

  • 例如:案例1:我们创建的每个Java类是否都将扩展类,如果是这样,那么为什么我们能够扩展一个类到我们的类可能是愚蠢的问题,刚刚记住了,我发布这个问题