
Java入门教程-面向对象之继承的基础概念2
Java 中不支持多继承,但支持多重继承。
继承特性
1)子类拥有父类非 private 的属性、方法。
2)子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3)子类可以用自己的方式实现父类的方法。
4)Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
5)提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
this关键字:指向自己的引用。
class Animal {
void eat() {
System.out.println("animal : eat");
}
}
class Dog extends Animal {
void eat() {
System.out.println("dog : eat");
}
void eatTest() {
this.eat(); // this 调用自己的方法
super.eat(); // super 调用父类方法
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog d = new Dog();
d.eatTest();
}
}
// 运行结果
//animal : eat
//dog : eat
//animal : eat
final 关键字
final关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写;
声明类
final class 类名 {
// 类体
}
声明方法
访问限定符 final 返回值类型 方法名(){
// 方法体
}
注意:实例变量也可以被定义为final,被定义为final 的变量不能被修改。被声明为final 的类的方法自动声明为final,但是实例变量并不是final。