On this page
article
java07类与继承
继承
继承得到的类是子类,被继承的类是父类(超类)
class 子类名 extends 父类名{
}
根节点是Object类(java.long中), class A与class A extends Object一样
同一包中,继承除了private之外的
不同包中,继承protected、public的
子类初始化时,父类所有的都分配内存,默认使用父类的无参数的构造方法,若无则用super
super(name, age);
成员变量的隐藏
若子类的成员变量与父类同名,则父类的成员变量就会被隐藏
访问隐藏的
//子类
class Child extends Parent {
int variable = 20;
public void printBothVariables() {
// 访问父类的变量
System.out.println("父类变量的值: " + super.variable);
// 访问子类的变量
System.out.println("子类变量的值: " + variable);
}
}
重写
重写不能降低方法的访问权限,但能提高访问权限
子类中重写方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。
instanceof
左侧是对象,右侧是类,如果左侧是右侧的,则是true
final
final class A{
}
final修饰类,类不能被继承
final修饰变量,变成常量
final修饰方法,不能被重写
上转型对象
在 Java 里,上转型对象指的是将一个子类对象赋值给父类类型的变量。这种操作也被叫做向上转型,它是一种自动类型转换,不需要额外的强制类型转换操作。
- 可调用父类成员:上转型对象能够调用父类中定义的成员变量和方法。
- 可调用子类重写方法:若子类对父类的某个方法进行了重写,那么上转型对象调用该方法时,执行的是子类重写后的方法。
- 不可调用子类特有成员:上转型对象无法直接调用子类中特有的成员变量和方法。
abstract
抽象类,抽象方法,抽象类可以没有抽象方法
抽象方法只能被声明,不能被实现,不能被final修饰
abstract int min(a,b);
abstract类不能用new创建该类的对象
抽象类的子类必须实现父类的所有的抽象方法2