extends是Java中的一个关键字,主要用于实现类的继承。以下是一些使用extends的关键技巧:
extends关键字可以实现这一点。例如:interface Drawable {
void draw();
}
class Circle implements Drawable {
public void draw() {
System.out.println("Circle is drawn.");
}
}
extends关键字,子类可以继承父类的属性和方法。这使得代码重用变得简单且高效。例如:class Animal {
String name;
public void eat() {
System.out.println(name + " is eating.");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking.");
}
}
public和protected成员。但是,它不能直接访问父类的private成员。如果需要访问private成员,可以通过父类的公有或受保护方法来实现。Animal myAnimal = new Dog();
myAnimal.eat(); // 输出 "Dog is eating.",因为Dog重写了Animal的eat方法
abstract class Shape {
abstract double getArea();
abstract double getPerimeter();
}
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double getArea() {
return width * height;
}
@Override
double getPerimeter() {
return 2 * (width + height);
}
}
extends关键字还可以用于类型检查。例如,在Java泛型中,可以使用extends来限制类型参数的上限。这有助于确保类型安全并避免不兼容的类型转换。例如:public class Box<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
在这个例子中,T的类型参数被限制为Number或其子类。这确保了Box类可以用于任何Number类型(如Integer、Double等),但不能用于非Number类型。