class Teacher extends Person implements Singer,Painter
接口(interface)是抽象方法和常量值的定义集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中包含常量和方法的定义,而没有变量和方法的实现。接口定义举例public interface Runner{public static final int id=1;public abstruct void start();public void run();public void stop();}接口可以多重实现;接口中声明的属性默认为public static final的;也只能是public static final的;接口中只能定义抽象方法,而且这些方法默认为public的、也只能是public的;接口可以继承其它的接口,并添加新的属性和抽象方法。多个无关的类可以实现同一个接口。一个类可以实现多个无关的接口。与继承关系类似,接口与实现类之间存在多态性。定义java类的语法格式。接口引用指向实现类对象。每一个接口只暴露了对象的一部分方法。
final的值不能修改其值,final的引用不能修改其引用。final的方法不能被写final的类不能被继承String Math
abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。抽象类不能被实例化抽象方法只需声明,而不需实现。
动态绑定和多态动态绑定是指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用相应的方法。上面例子中,根据Lady对象的成员变量pet所引用的不同的实际类型而调用相应的enjoy方法。三个必要条件:1.要有继承2.要有重写3.父类引用指向子类对象执行期间判断父类引用指向子类的实际类型,根据其实际的类型调用相应子类重写的方法。
对象转型(casting)一个基类的引用类型变量可以“指向”其子类的对象。一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。可以使用 引用变量 instanceof 类名 来判断该引用所“指向”的对象是否属于该类或该类的子类。子类的对象可以当作基类的对象来使用乘坐向上转型(upcasting)反之称为向下转型(downcasting)。
父类引用指向一个子类对象object的默认equals 和x==y一样的实现instanceof关键字判断一个object是否为一个类的实现
哈希编码独一无二的代表了对象,根据这个编码可以快速的找到对象
首先说明toString方法
Object类是所有类的基类application programing Interface应用程序编程接口
this(can1,can2,can3)调用自己的构造方法
继承之中的构造方法子类的构造过程中必须调用起基类的构造方法 子类可以在自己的构造方法中使用super调用基类的构造方法如果调用super,必须卸载子类构造方法的第一行如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类无参数的构造方法如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错调用基类构造方法的格式super(name,age);
使用super来引用基类的成分
重载 overlord重写方法override,overwrite相同的返回类型、相同的参数列表、相同的方法名称。不能使用比被访问方法更严格的访问权限
子类对象包含父类对象 类内部 同一个包 子类 任何地方private Yesdefault(包权限) Yes Yesprotected Yes Yes Yes public Yes Yes Yes Yes对于Class的权限修饰只能使用default和public
子类自动拥有了父类的所有成员。java中一个子类只持之单继承
rt.jar是java的包java.lang里面的类不需要引用可以直接使用其它的必须Import后才可以使用String、Math、Systemjava.avtjava.appletjava.netjava.io-------------------打包方式,cmd定位到包的父路径然后执行下面的命令jar -cvf test.jar * .*
执行一个类需要写全包名;每一个包的父目录必须在class文件中配置package com.company.Cats;import com.company.Cats.*;java com.company.dogs.dog; \com\benqmaterials\Cats\com\benqmaterials\Dogsclass编译成功后移动到包的文件夹中编译钱的文件可放在com以上的文件夹
避免命名重复无名包如果一个类要放在包里面,编译的class文件要位于正确的目录,和包的层次一致。如果在另外一个类中使用这个类,名字要写全名
在磊的方法定义中使用this关键字代表使用该方法的对象的引用。当必须指出当前使用方法的对象是谁时要使用this。有时使用this可以处理成员变量和参数重名的情况。this可以看作一个变量,值是当前对象的引用