继承,关键字extends。
super()调用父类构造方法,super.父类成员方法()。
子类不能调用父类中被修饰为private的方法。
子类对父类的操作,调用,新增方法,重写父类方法,重写(返回值为子类的)。
重构:特殊的重写方式,子类与父类的成员方法返回值,方法名称,参数类型及个数完全相同,唯一不同的是方法实现内容。
重载:同一个类中允许同时存在一个以上的同名方法,只要方法的参数类型,个数,返回值或者顺序不一样。(注不定长参数重载方法,化为数组,遍历)
重写父类方法时,权限修饰符只能从小范围到大范围的改变。private,protected,public。
在实例化子类对象时,java编译器会在子类的构造方法中自动调用父类的无参构造方法,其顺序,首先是顶级父类,然后是上一级父类,最后是子类。【即先实例化父类对象】
有参构造方法不能被自动·调用,只能依赖于super关键字显示调用父类构造方法。
如果使用finalize()方法对对象进行清理,需要确保子类的finalize方法的最后一个动作是调用父类的。
object类:geClass(),返回对象执行时的Class实例;toString()方法,讲一个对象返回为字符串形式。两者常联合使用。
对象类型转换:向上转型。把子类对象赋值给父类对象,Quadrangle obj = new Parallelogram()。向下转型。将父类对象强制转换为某个子类对象,进行显示类型转换,Parallelogram p =(Parallelogram) q。
执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以需要判断父类对象是否为子类对象的实例。if(父类对象 instanceof 子类){向下转型,强制转换;}
多态。。。。。。。感觉还没理解!不懂他的应用。
一般将父类定义为抽象类,需使用这个父类进行继承和多态处理。
java语言中设置抽象类不可以实例化对象。
abstract,定义抽象类的关键字。使用abstract的类,抽象类,方法,抽象方法。public abstract class Test{abstract void testAbstract();//定义抽象方法}
接口是抽象类的延伸,可以看做纯粹的抽象类,接口中的所有方法都没有方法体。关键字interface。public interface drawTest{void draw();//接口内的方法,省略abstract关键字}
一个类实现一个接口使用implements关键字。public 类a继承类b implements 接口{ 。。。}
接口中定义的方法必须被定义为public或abstract。接口中定义的任何字段都是static和final的。
java中不允许多重继承,可以使用接口实现。一个雷可以同时实现多个接口。class 类名 implements 接口1,接口2........