Java中提供一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。这类继承父类之后,就可以直接用父类公共的属性和方法。

子类继承父类子类可以得到父类的属性和行为,子类可以使用。(Java中子类更强大)
继承特点:
1.只支持单继承,即一个子类只允许有⼀个父类。
2. 子类可以拥有父类的属性和方法
3. 子类可以拥有自己的属性和方法
4. 子类可以重写覆盖父类的方法


子类有自己的构造器,不能继承父类的构造器,父类的构造器用于初始化父类对象。这类可以继承父类的私有成员,但不能直接访问。
Java中这类不能同时继承多个父类。
Java中所有类要么直接继承了Object,要么默认继承了Object,要么间接继承了Object。

在继承体系中,子类出现了和父类中一模一样的方法声明,就说子类这个方法是重写的方法。(@Override 重写注释 用于重写方法上,作为重写是否正确的校验注释)

子类中所有的构造器默认都会先访问父类中的无参构造器,再执行自己。
子类构造器中 super(有参构造器的形参) 可以调用父类有参构造器
this() 可以调用本类兄弟构造

相同包下的类互相可以直接访问,而不同包下的类必须先导包(import 包名.类名),才可以访问。
使用不同包下的相同的类名,默认只能导入一个类的包,另一个类要使用全名访问(包名.类名)。
权限修饰符(控制一个成员能被访问的范围):四种作用范围由小到大(private,缺省,protected,public)

final关键字是最终的意思,可修饰(类,方法,变量):
修饰类:表明该类是最终类,不能被继承; 修饰方法:表明该方法是最终方法,不能被重写; 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)

变量有两种: 一,局部变量 ;二,成员变量(实例成员变量;静态成员变量)
常量是使用了public static final修饰的成员变量,必须有初始化值,执行过程中不可被改变。
常量命名规范:英文字母全部大写,多个单词下划线连接。
信息的标志与信息的分类通过常量与枚举实现。


(实例名称建议全部大写。)
抽象类作为父类,用来被继承,子类必须重写抽象类的抽象方法,否则子类也必须定义为抽象类。emm,抽象类得到了抽象方法,但失去了创造对象的能力(没有方法体)。
final与abstract之间为互斥关系:抽象类作为模板被子类继承,final修饰的类不能被继承
接口用关键字interface定义
public interface 接口名{
常量
抽象方法
}
接口体现一种规范,规范一定是公开的。
其中常量 代码层面 public static final 可以省略不写;抽象方法 代码层面 public abstract可以不写。

接口与接口的关系:多继承,一个接口可以同时继承多个接口 (整合多个接口为同一接口)
接口的注意事项
1、接口不能创建对象2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。
3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
4、一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法即可。
5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
多态
同类型的对象,执行同一个行为,会表现出不同的行为特征。
父类类型 对象名 = new 子类构造器 ; 接口 对象名 = new 实现类构造器;
多态中成员访问特点:
方法调用:编译看左边,运行看右边。
变量调用:编译看左边,运行看左边。
多态的前提:有继承/实现关系’有父类引用指向子类对象,有方法重写。


内部类
.内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(宿主)。
public class People {
//内部类
public class Heart (
内部类的使用场景、作用
.当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构可以选择使用内部类来设计。
.内部类通常可以方便访问外部类的成员,包括私有的成员。
.内部类提供了更好的封装性,内部类本身就可以用 private protectecd 等修饰,封装性可以做更多控制。
静态内部类
.有 static 修饰,属于外部类本身。
.它的特点和使用与普通类是完全一样的,类有的成分它都有,只是位置在别人里面而已。
public class Outer {
//静态成员内部类
public static class Inner {
静态内部类创建对象的格式:
格式:外部类名.内部类名对象名= new 外部类名.内部类构造器;范例: Outer . Inner in = new Outer . Inner ();
成员内部类
●无 static 修饰,属于外部类的对象。
.JDK16之前,成员内部类中不能定义静态成员, JDK 16开始也可以定义静态成员了。
public class Outer {
//成员内部类
public class Inner {
成员内部类创建对象的格式:
格式:外部类名.内部类名对象名= new 外部类构造器. new 内部类构造器();范例: Outer . Inner in = new Outer (). new Inner ();
匿名内部类:
.本质上是一个没有名字的局部内部类,定义在方法中、代码块中、等。.作用:方便创建子类对象,最终目的为了简化代码编写。
格式: new Employee a = new Employee (){
类|抽象类名|或者接口名(){重写方法;
public void work (){
};
匿名内部类可以作为方法的实际参数进行传输。
常用API


Object的equals方法比字符串的equals方法更安全,主调为null返回false。


String:内容不可变、拼接字符串性能差。
StringBuilder:内容可变、拼接字符串性能好、代码优雅。
定义字符串用String.
拼接、修改等操作字符串用StringBuilder.



BigDecimal的作用
●解决浮点型运算精度失真问题。
BigDecimal 的对象如何获取
BigDecimal b1= BigDecimal . valueOf (0.1);
961

被折叠的 条评论
为什么被折叠?



