extends
某个类不能被继承,最常见的有两种情况
-
该类被final修饰,final表示最终的,不能被继承,其中String类就是被final修饰的类
-
该类的构造方法为私有构造 即被private 修饰,声明private就不允许本类之外的任何类使用,当然也就不能实例化,最常见使用在工具类中,工具类不需要实例,再去使用引用调用方法,只需要把方法定义为static,这样就能使用类直接去调用方法即可。
第一种情况是很容易理解的:final修饰
第二章情况说一下我个人的理解
私有构造的类如果可以被继承,那就和多态矛盾了,父类引用指向其子类对象(多态)
引用调用方法,实际上是先调用了构造方法,而私有构造是无法创建对象的,故矛盾
举例:
public class Test {
// 私有构造
private Test() {
}
public static void eat() {
// 这里的方法需要使用static修饰,不然是无法直接使用类调用的
System.out.println("一直吃");
}
}
public class Test1 extends Test{
// 此时会报错:There is no default constructor available in 'com.huawei.bes.Test'
public void eat() {
Test.eat();
}
}
---
<font color=#FF0000>彩蛋</font>(针对使用idea的时候,提示内容无法复制--多次想复制悬浮提示,ctrl+c不好使,于是百度后特意记录下)
鼠标移动到错误位置,Idea会提示错误信息。接着`一直按键盘上的ALT键`,并将鼠移动到错误提示信息上`同时点击一下`,这些信息便被复制了,使用ctrl+v粘贴即可