finals :是个修饰符,表示最终的,不可修改
final修饰的类不能被继承,修饰的方法不能被覆写,修饰的变量不能二次赋值,不能更改,必须显示赋值,我们一般吧final修饰的静态变量也叫常量,例如public static。
使用方式:
修饰静态变量的时候不能更改
final int a = 10;
修饰类的时候不能被继承
final class A{
};
修饰成员方法的时候不能被覆写
2 多态 2.1 实现多态的步骤1 编写父类,定义方法(功能)
2 编写子类(可以多写几个子类),然后重写父类的方法
3编写方法,形参位父类类型,而实参位子类对象(父类指向子类的引用)
多态的表现形式
1形参为父类型
2返回值为父类型
方法的放回类型为父类,而实际上放回的是子类的对象
优点:同一操作,作用于不同对象,可以有不同的解释,产生不同的结果,这就是多态性当一件事会有多种不同实现方式的时候,我们选择依赖高层,来拥抱多种变化本质还是降低类和细节之间的耦合度
缺点:丢失子类特有的属性
使用方式:
public class Abstract_1 {
public static void main(String[] args) {
Animal A = new Cat();
A.eat();
}
}
注意:转型的使用
向上转型:父类引用指向子类的对象
向下转型:实例化父类类型对象之后,如果想要调用子类特有的方法就必须想下转型
Subclass sub = (Subclass)sup;
Instanceof
if(sup instanceof SubClass){
}
判断某个对象是否有某个类实例化而来
abstract
是个修饰符,修饰的类是抽象类,修饰的方法是抽象方法,抽象的类是不能实例化对象的
抽象的方法是没有方法体,只能定义功能,没有功能的实现,并且抽象方法只能在抽象类中
2.2 相关知识软件设计六大原则 :
1 单一职责原则 : 功能单一,只拥抱一种变化
2 里氏替换原则 : 能使用父类的情况下,一定可以使用子类
因为继承,父类有的功能,子类都有
3 依赖倒置原则 : 细节应该依赖抽象,而抽象不应该依赖细节
4 接口隔离原则 : 先不管
5 迪米特法则 : 最少知识原则,和其他类或对象,尽可能有更少的了解
6 开闭原则 : 对修改关闭,对扩展开放
3 接口
interface
是接口 可以理解位完全抽象的一个类,里面只有抽象方法和常量,没有具体实现的方法。接口中的抽象方法辉在不同的类中去实现,会有不同的行为 ,并且一个类中可以有多个接口,接口比抽象类更加的灵活
接口的特性:接口不可以被实例化 实现类必须实现接口的所有方法 实现类可以实现多个接口(灵活)implements、多个接口使用逗号隔开 一个子类,可以在继承一个父类的同时再实现多个接口
接口中的变量都是静态常量(public static final)换句话说,接口当中是没有变量的。在程序当中声明的常量比较适合在接口当中声明
使用方式:
Object 是所有类的祖类 是java中提供的根类
一个类没有显示继承另一个类的时候,就默认继承object
object xx = new xxx();是可以发生多态的
4.1 Equalsequals();设计的目的是用来比较两个对象是否相等,但是 默认比较地址,想要比较别的就需要自己根据需求进行重写
public boolean equals(Object obj){
return(this == obj)
}
4.2 Finalize
就是一个垃圾回收方法
class Person{
public void finalize(){
System.out.println(this+"")
}
}
4.3 toString
toString 代表当前对象的字符串表达形式,但是object中默认toString方法是打印改对象的内存地址(hash值),想打印出自己想要的东西,要根据需求进行方法的覆写



