java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态

java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态,第1张

举个例子:

父类:A

子类:A1

子类:A2

父类中定义了一个方法method:,类A1和类A2有不同的实现,这是代码中定义一个类A,那么可以直接调用A的a方法即可,不用关心用A1还是A2去实例化的这个A对象,这就是多态的特性

A a;

a = new A1();或a = new A2();

amethod();只要改变这个a的实例化方式,就能执行不同对象的方法。

父类的私有属性和方法是不被子类继承调用的,如果你非要这么做可以

1、在父类中另外定义protected 的方法 *** 作私有方法,子类调用该方法

2、将私有方法改为protected

3、使用反射,获取父类所有方法,根据名称调用

把这个方法写在基类

public void getFields() {

        Class<> cls = getClass();

        for (; cls != Objectclass; cls = clsgetSuperclass()) {

            Field[] fs = clsgetDeclaredFields();

            for (Field f : fs) {

                Systemoutprintln(fgetName());

            }

        }

    }

是的,子类将继承父类的非私有的属性和方法。

在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。

1、如果给子类i提供get和set 通过get调用的自然是子类的。

2、如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写。

扩展资料

在继承中用到super调用父类的构造

private String name;

private String sex;

public xinxin1(String name,String sex)

{

thisname=name;

thissex=sex;

}

public void hello(){

Systemoutprintln(“嗨!我是”+name+”我是”+sex+”孩”);

}

面向对象的三大特征之一封装,private了某个成员那么就必须对外创建一个对外访问接口,setXX()和getXX,否则本类中都没有办法访问。既

然对外创建了访问接口,那么某个类继承了它之后肯定自身也具备了该属性或者方法,所以肯定继承了。换言之,父类的属性和方法都是从子类身上抽取的,如果子

类继承了父类都没法具备父类的功能的话,继承就毫无意义了。

或者有可能是这样的:父类中的属性和方法不能私有。因为我确实没印像看到过父类中的成员是私有的。

你的这个问题就是关如多态的,是java里面最核心的机制

子类重写了父类方法的话,不管怎么样子类都会去调用它自己的那个方法,即父类引用指向子类对象时,这个对象变量调用的是其子类的方法(除非两个方法都是static的),其属性的话不管怎么样调用的总是父类的属性。

以上就是关于java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态全部的内容,包括:java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态、JAVA中重写父类方法后,这个方法如何调用父类私有属性方法、java中如何获取类的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9809203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存