Java自学笔记(12):【面向对象】继承,super关键字,继承下的访问控制权限

继承

继承是类与类之间的关系,类似与现实世界中的分类

子类会具有父类的一般特征,也会与自己的特有特征

父类更通用,子类更具体

语法规则:   建立一个类时,在类名后加    extends 父类名,则表示建立的类是父类的子类

访问控制修饰符 修饰符 class 类名 extends 父类名 {

  ······················

  ······················

}

示例:

public class Person {                   //父类
    String name;
    int age;
    void print() {
        System.out.println(name+"今年"+age+"岁");
    }

}
public class Student extends Person {        //子类
    String clazz;
    void print() {
        System.out.println(name+"今年"+age+"岁");
    }
}
public class Teacher extends Person {         //子类
    String profession;
    void print(){
        System.out.println(name+"今年"+age+"岁");
    }
}
public class Demo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Person person = new Person();
        person.age=18;
        person.name="小明";
        person.print();
        
        Student stu = new Student();
        stu.name="渣渣辉";
        stu.age=40;
        stu.print();
    }

}

结果如下:

继承的特点: 继承是让子类继承父类的特征和行为

子类中拥有所有父类中非private修饰的成员,和子类自己的成员


super

作用:    1,调用父类的属性

    2,调用父类中的方法

    3,调用父类中的构造方法                 //这里的父类指直接父类

何时使用:子类中有与父类同名的成员,使用super以调用父类中的成员。 使用方法和类中的this关键字类似

调用构造方法:

public class Student extends Person {
    String clazz;
    public Student(String name,int age) {
        super(name,age);  //必须为第一条语句   //调用父类的构造函数
    }
    void print() {
        System.out.println(name+"今年"+age+"岁");
    }
}

继承下的访问控制权限

主要区别在protected和default上,子类不同包时,protected可见,default不可见,详情见笔记(11)中的表格

原文地址:https://www.cnblogs.com/tkj521Ya/p/11231941.html