继承
继承是类与类之间的关系,类似与现实世界中的分类
子类会具有父类的一般特征,也会与自己的特有特征
父类更通用,子类更具体
语法规则: 建立一个类时,在类名后加 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)中的表格