子类继承了什么?和子父类之间的关系

  • 子类继承了什么

在java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承。受保护的也可以继承

但是私有的类属性成员和方法则无法继承。

子类继承父类的成员变量

当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量

对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承

对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,

即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,

需要使用super关键字来进行引用
总结一下来说就是所有的共有成员和保护成员包括里面的变量和方法

在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,

如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法。


外部通过get方法调用该属性,所以需要返回值,set方法是外部对该属性赋值,就不需要返回值


public class Animal {
     private String name;
     private int age;
     private String sex;
get和set方法,有参无参方法

public class Dog extends Animal{
    public Dog() {
    }

    public Dog(String name, int age, String sex) {
        super(name, age, sex);
    }

    @Override
    public void shut() {
        super.shut();
    }
}

因为dog类继承自Animal所以他会通过super去进行传递参数



  • 子类跟父类的关系

当子类与父类都有一个一样的方法,并且父类变量引用一个子类对象是他会由对象自己的类型决定


对象是子类型的,他就调用子类型的方法,是夫类型的它就调用夫类型的方法

如果子类与父类由相同的字段,则子类中的字段会代替或隐藏父类中的字段,子类方法中访问的是子类中的字段

而不是父类中的字段,如果子类方法想访问父类中被隐藏的同名字段,可以使用super关键字访问

如果子类被当作父类使用,则通过子类访问的字段它是父类的

如果子类和父类中出现同名成员变量,在子类的函数里头所指的变量就是子类自己的
在浮类的函数里头所指的变量就是父类自己的

public void shut(){
    System.out.println("叫声");
}

@Override
public void shut() {
    super.shut();
}

 


如果说在子类和父类中都有同一个函数,那么就可以在子类中通过super.函数名来指明是父类的函数
 
posted @ 2022-06-22 14:43  ja不会va  阅读(346)  评论(0)    收藏  举报