46.继承的理解和应用
- 继承与真实世界相似
类似于基因遗传(只有一个父亲)
符合is—a关系的设计使用继承(只有一个父类)
- 继承是Java实现代码重用的重要手段之一
使用继承优化设计,将子类共有的属性和行为放到父类中(将重复的代码提取到父类),减少代码量,方便修改代码
继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类。
子类无法继承父类的private成员
同包的子类可以继承父类中默认修饰符修饰的成员,不同包的子类不可以继承父类中默认修饰符修饰的成员(继承默认权限修饰符修饰的属性和方法,但子类和父类必须在 同一个包里)
子类可以继承父类的protected成员,不管父子类是否在同一个包(继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里)
//Person类
package cn.com.ooa1;
//父类
public class Person {
private int age;
protected String name;
char sex;
public String address;
}
//Student类
package cn.com.ooa1;
//子类
public class Student extends Person {
public void m1(){
//子类可以继承父类的protected成员,不管父子类是否在同一个包
System.out.println(name);
/*//子类无法继承父类的private成员
System.out.println(age);
*/
//同包的子类可以继承父类中默认修饰符修饰的成员
System.out.println(sex);
System.out.println(address);
}
}
//Teacher类
package cn.com.ooa2;
import cn.com.ooa1.Person;
//子类
public class Teacher extends Person {
public void m1(){
//子类可以继承父类的protected成员,不管父子类是否在同一个包
System.out.println(name);
/*//子类无法继承父类的private成员
System.out.println(age);*/
/*//不同包的子类不可以继承父类中默认修饰符修饰的成员
System.out.println(sex);*/
System.out.println(address);
}
}