一、构造器
在IDEA for MAC中快捷键command + N,选择constructor,即可创建一个当前类的显式的无参构造器。
注意在定义有参构造器的同时会使类原先隐式的无参构造器失效。
若类有继承父类,构造器运行时先隐式执行父类的无参构造器。
二、继承
1.使用extend关键字表示继承关系
class c1 extend c2{} // c2为c1的父类
2.对象间的类型转换
子类向父类转换为自动转换
父类向子类转换需要使用强制类型转换
3.super、this关键字
super关键字表示父类的属性或方法
this关键字表示子类的属性或方法
4.instanceof关键字
objectName instanceof className
是一种比较运算符,返回的为布尔值,表示某对象是否与某类具有继承关系。
对象类的引用与判断的类必须具有继承关系。
三、多态
1. 方法重写
在子类中重写父类的同名且参数列表相同方法。
声明一个父类的引用指向子类时,将调用子类方法。
static, final,private方法不能被重写。
四、对象初始化时将运行的代码块
1.静态代码块
第一次实例化对象时最先执行的代码块
static{}
2.匿名代码块
每次实例化对象时在构造器前执行的代码块
{}
五、abstract关键字
1.抽象类。
2.抽象方法,只能在抽象类中声明,只表示返回值与方法名,参数列表,不编写具体实现代码。
3.若有子类继承了抽象类,必须要对父类中的抽象方法进行实现,或者继续抽象。
六、接口
将类的声明关键字替换为interface,即一个接口。
接口中的方法均为public abstract,故可省略这两个修饰词。
接口中的变量均为public final,同样可省略。
一个类可以实现多个接口,解决java只能单继承的问题。
实现接口的类声明示例
public class clientServiceImpl implement clientService{}
七、内部类(不建议使用)
1.内部类可以获取外部类的数据、方法,要想new内部类需要先实例化外部类再通过.new innerClassName
2.静态内部类
3.匿名内部类
4.局部内部类:在方法中定义