Java学习笔记--继承的特点,如何为父类中private的成员变量赋值(经验值)

目录

一,继承的特点

1.继承只支持单继承,不能多继承 

2.继承支持多层继承 

3.一个父类可以有多个子类 

4.构造方法不能继承,也不能重写  私有方法可以继承,但是不能被重写  静态方法可以继承,但是不能被重写

二,问题:如何为父类中private的成员变量赋值(经验值)

1.利用set赋值

2.利用构造方法赋值


一,继承的特点

1.继承只支持单继承,不能多继承
 

public class A extends B,C{}  -> 错误

2.继承支持多层继承
 

public class A extends B{}
  public class B extends C{}

3.一个父类可以有多个子类
 

public class A extends C{}
  public class B extends C{}

4.构造方法不能继承,也不能重写
  私有方法可以继承,但是不能被重写
  静态方法可以继承,但是不能被重写

对4中私有和静态的演示,创建父类子类

public class Fu {
    public void method(){
        System.out.println("method方法");
    }
}
public class Zi extends Fu{
    @Override
    public void method(){
        System.out.println("method方法");
    }
    /*@Override  //私有不能被重写
    private void method01(){
        System.out.println("method方法");
    }*/
    //@Override      //静态不能被重写,但可以继承
    public static void method02(){
        System.out.println("method方法");
    }


}

测试类(测试静态方法)

public class test {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.method02();
    }
}

二,问题:如何为父类中private的成员变量赋值(经验值)

1.利用set赋值

因为父类私有方法不能直接用,但提供的get,set方法是可以直接使用的,用Employee和Teacher类来演示

public class Employee {
    private String name;
    private int age;

    public Employee() {
    }

    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Teacher extends Employee{

}

测试类

public class test {
    public static void main(String[] args) {
        Teacher teacher = new Teacher();
        teacher.setName("张三");
        teacher.setAge(23);
        System.out.println(teacher.getName()+".........."+teacher.getAge());

    }
}

2.利用构造方法赋值

用Manager类演示

public class Manager extends Employee{
    public Manager() {
    }

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

用Manager的构造方法

System.out.println("=========================");
        Manager manager = new Manager("李四", 43);
        System.out.println(manager.getName()+"..............."+manager.getAge());

原理:new完Manager后在参里给父类有参构造赋了值,李四,43,继续传给里面的super关键字,然后继续传给Employee参里面的name和age

this.name = name=李四;

this.age = age=43;

然后就成功的赋值了父类中的私有成员

上一篇:【Linux】正则表达式的使用


下一篇:前端性能优化之图片懒加载技术详解