继承:将共性进行抽取,使用关键词extends来实现继承。
优点:代码可以进行重用。
封装:使用prviate关键字,修饰字段和方法,只能在当前类当中使用。
优点:安全,对于类的调用者来说,类的使用成本降低了。
多态:父类引用 引用子类对象。通过父类引用调用父类和子类同名的覆盖方法。此时,如果父类引用,引用的子类对象不一样,调用这个重写的方法,表现的行为也是不一样的。
优点:
抽象类:包含抽象方法的类,称为抽象类。
抽象方法:该方法没有具体的实现,所以,使用abstract方法来修饰。
注意:
1、抽象类不能够被实例化。但可以引用。
2、抽象类当中,可以有和普通类当中一样的成员,就是不能实例化。
3、一个普通类 ,继承了抽象类,这个类需要重写这个抽象类当中的抽象方法。
4、一个抽象类A,继承了一个抽象类B之后,可以不重写该抽象类B中的方法。但是一旦这个抽象类A,被继承后,那么一定要重写所有的抽象方法。
5、抽样方法不能是被prviate和被final修饰的
抽象类的作用:抽象类出现最大的意义就是被继承。
抽象方法可以被static修饰吗?
不可以,如果被static修饰,draw方法通过类名就可以调用了。
接口:interface修饰的。
1、接口当中的方法没有具体的实现。
2、接口当中的方法,默认全部都是public abstract。
3、接口当中的成员变量,都是public static final。
4、接口不可以被实例化。
5、class Cycle implements IShape { (一个类可以实现接口通过implements关键字)
6、可以同时继承抽象类,也可以实现多个接口,但是类只能继承一个。
7、接口的出现,是为了满足,Java当中多继承的要求
在JDK1.8开始时可以有具体实现的方法的,但是这个方法必须用default实现
实现多个接口
深拷贝与浅拷贝
是程序员自己控制的
浅拷贝:拷贝对象的引用。
深拷贝:不能拷贝引用,而是拷贝引用所指的对象。
空接口,标志接口:代表如果一个类实现了这个接口,证明这个类就可以被clone。
抽象类与接口的区别: