extends
是Java中的一個(gè)關(guān)鍵字,主要用于實(shí)現(xiàn)類的繼承。以下是一些使用extends
的關(guān)鍵技巧:
extends
關(guān)鍵字可以實(shí)現(xiàn)這一點(diǎn)。例如:interface Drawable {
void draw();
}
class Circle implements Drawable {
public void draw() {
System.out.println("Circle is drawn.");
}
}
extends
關(guān)鍵字,子類可以繼承父類的屬性和方法。這使得代碼重用變得簡單且高效。例如: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
成員,可以通過父類的公有或受保護(hù)方法來實(shí)現(xiàn)。Animal myAnimal = new Dog();
myAnimal.eat(); // 輸出 "Dog is eating.",因?yàn)镈og重寫了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
關(guān)鍵字還可以用于類型檢查。例如,在Java泛型中,可以使用extends
來限制類型參數(shù)的上限。這有助于確保類型安全并避免不兼容的類型轉(zhuǎn)換。例如:public class Box<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
在這個(gè)例子中,T
的類型參數(shù)被限制為Number
或其子類。這確保了Box
類可以用于任何Number
類型(如Integer
、Double
等),但不能用于非Number
類型。