现在已经清楚了整个的继承逻辑,那么下面对于继承实际上还有一些要求。
1.java之中不允许多重继承,只允许多层继承。
(1)在实际的生活之中一个人只会有一个亲老子,那么在程序的逻辑之中也是奉行此标准的。
错误的继承:
class A {}
class B {}
class C extends A,B { } // 多重继承
正确的继承:
class A {}
class B extends A {}
class C extends B { } // 多层继承
继承的主要目的是扩展已有类的功能,但是多重继承目的是希望可以同时继承多个类中的方法,而面对于多继承的要求应该将范围限定在同一类之中。如果说现在使用了多层继承,这个时候对于C类也同样可以继承多个父类的操作。但是多层继承也应该有一个限度,千万别整个祖宗二十代,对于继承关系而言,理论上层次上不应该超过三层。
2.在进行继承关系定义的时候,实际上子类可以继承父类中的所有的操作结构。但是对于私有操作属于隐式继承,而所有的非私有操作属于显式继承。
class Person {
private String name ;
public void setName(String name) {
this.name = name ;
}
public String getName() {
return this.name ;
}
}
class Student extends Person {
public Student(String name) {
setName(name) ; // 设置name属性内容
}
public void fun() {
// System.out.println(name) ; // 直接访问不可能,因为私有的
System.out.println(getName()) ; // 间接访问
}
}
public class JavaDemo {
public static void main(String args[]) {
Student stu = new Student("林中强") ;
stu.fun() ;
}
}
继承一旦发生了,所有的操作就都可以被子类使用了,并且在程序设计里面并没有考虑到现实生活中所谓的“败家子”概念,子类至少会维持父类的现有功能。