面向对象

来源:互联网 发布:管家婆软件是什么 编辑:程序博客网 时间:2024/06/05 08:12

封装:
私有属性,把成员变量的访问修饰符声明为private
公开方法对属性赋值和取值,声明getXXX()和setXXX()方法

继承:
在java中是单继承关系,但是可以实现多重继承
子类可以继承父类非私有属性和方法,不能继承构造方法
在实例化子类时,先执行父类构造方法,再执行子类构造方法
当父类的方法无法满足子类需要时,子类可以重写父类方法
在子类中,使用super关键字表示父类对象,可以用在非静态方法中;
super()表示父类构造器,只能用在子类的构造器中,并且是在构造器的第一行;
this代表当前子类对象,可以使用在子类的非静态方法中;
this()表示子类的构造器,只能用在子类的构造器中,并且是在构造器的第一行;
不能和super()同时出现;
当类使用final关键字修饰时,该类不能被继承
重写规则:重写方法的声明部分(返回值类型、方法名、参数列表)要和父类中的方法保持一致;
重写方法的权限要大于等于父类的方法;
重写方法可以抛出任意的非强制性异常,如果父类方法中抛出了异常,子类中的重写方法抛出异常的范围要小于等于父类
当父类的方法使用final关键字修饰时,可以被继承,但不能被重写
当父类的方法使用static修饰时,可以被继承,不能被重写,但是可以在子类中写声明
(排除fina和static关键字的情况下)如果在同包下,子类可以重写父类的非私有的方法;
不在同包下,子类只能重写父类public和protected修饰的方法;
不能被继承的方法,不能重写,例如:构造方法

多态:
继承
方法重写
父类引用指向子类对象(向上转型)
父类引用调用子类重写的方法,指向的是重写方法

抽象类:
使用abstract关键字修饰的类,即为抽象类
抽象类中可以声明普通类的所有成员之外,还可以声明抽象方法
含有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法
抽象类不能被实例化对象,只好被继承,使用多态的方式获取对象也可以使用匿名内部类的方式创建对象
如果一个类继承了抽象类,必须要重写类中的所有抽象方法
抽象方法中可以声明构造方法

接口:
使用interface关键字修饰
接口是可以多继承的
接口可以被类实现,一个类可以实现多个接口
接口是一个完全抽象的抽象类,接口中的方法都是抽象方法(JDK1.7↓)
接口中不能有构造方法
接口中不能声明变量,只能声明常亮,默认的声明格式为public static final int i= 1;
接口的声明和接口中方法的声明默认都使用了abstract关键字

原创粉丝点击