Java继承的概念
·继承背后的思想就是 基于已存在的类来构建新类
·当从已存在类继承时,就重用了它的方法和属性,还可以添加
新的方法和属性来定制新类以应对需求
·约定:从其他类导出的类叫做子类。
被导出的类叫做父类
·在java中,除了Object类之外,所有类都是子类,都只有
唯一的父类
Java继承的实现
·继承在OOP中不可或缺
·创建一个类时,总是在继承
·继承的意义
代码重用 体现不同抽象层次
·父子类关系
父类更抽象,更一般 子类更具体,更特殊
class Person
{
String name; //公有属性
private String address;//私有属性
public Person(String name,String address){
this.name = name;
this.address = address;
System.out.println("父类构造方法被调用");
}
public void printInfo() {
System.out.println("name="+name);
}
public void printAddr(){ //方法权限为public时可以访问,但是方法改为private权限是不能继承的
System.out.println("address="+address);
}
}
class Student extends Person
{
public Student(String name,String address){
super(name,address);
System.out.println("子类构造方法被调用");
}
public class Test {
public static void main(String[] args) {
Student s = new Student("张三","222"); //Student虽然继承于父类,但是不对父类里面的方法做继承
s.printInfo();
s.printAddr();
}
}
输出:address=222 //这里能输出时通过父类person的构造方法来实现的
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
private只供给同一个类使用,同一个包内作为一个属性是可以访问的,但是作为一个方法是不可以访问的
私有的时候是间接调用构造方法,子类实例化的是父亲的对象,调用父亲的构造方法间接访问
属性私有,方法私有,无法继承
子类并不能继承父类的私有属性和私有方法,子类只能继承父类的非私有的信息