首页 > 代码库 > 面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字
面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字
面向对象设计的过程:
发现类-发现类的属性-发现类的方法-优化设计;
封装:
private类型的,只可以在本类中使用,当其他类调用此类时,不可使用,因此可以设置setget方法,如下所示:
构造------------------------
默认有无参构造,若设置了有参构造,则就没有默认的无参构造了,需要自己再添加一个
方法重载-------------------
方法名相同,参数列表不同(类型,数量,顺序不同,与参数名无关);
与返回值,访问修饰符无关
面向对象(OO)的优点---------
继承-----------------------------
extends关键字;
特点:单继承,即只能继承一个父类;可以继承好多代
super关键字:访问父类里的属性和方法;不用也可以访问;当重写的时候,子类的方法改变了,用super还可以再调用父类的这个方法;
继承的初始化顺序;
父类属性-父类构造方法-子类属性-子类构造方法
有些父类成员不能被继承---------------------------
1.子类不能访问父类的private类型的值;
2.子类与父类不在同包,父类使用默认访问权限的成员,子类也不能访问;;
3.构造方法也不能被继承;
虽然以上三种不能被继承,但是可以一定可以调用
子类构造函数中-------
super(10);先调用,调用有参构造必须要自己写;若不写,则默认调用了无参构造;
访问修饰符-------------------------
private:只能在本类中使用
默认(friendly):只能在本类和同包中使用
protected:可以在本类同包和子类中使用;
public:所有地方都可以使用;
空指针异常————
空对象调用了方法或属性;
方法重写@override---------3原则
1.必须在继承关系的子类中
2.重写的方法名,参数,返回值类型必须与父类相同;
3.私有方法不能继承,因此也无法重写;
可以加@override验证一下是否重写成功
什么时候使用继承?符合is-a的关系时;
抽象类-----------
abstract关键字
特点:抽象类不能通过new来实例化
1.抽象方法没有方法体
2.抽象方法必须在抽象类中(所以有抽象方法的类一定是抽象类)
3.抽象方法必须在子类中被实现,除非子类也是抽象类;
抽象类中可以有具体(非抽象)的方法,并不全是抽象方法,也可以不包含抽象方法
多态-----------
通过父类引用,子类对象来实现的;
如何实现多态-----
1.使用继承
2.子类重写父类的方法
3.父类引用子类实现
引用类型强制转换------
当使用多态时,若子类中新定义了方法是父类中没有的,就需要考虑向下强转,代码如下所示:
(关于用instanceof检查对象是否真的是同一类型,如果没有这个检查,有时可以运行,但当出现多个对象时,就会报错,所以一般都会加上这个判断)
补充:如果确定是最终类,不会有子类了,可以写private型,否则最好写成protected型;若写成private型,就需要使用set,get构造器来处理参数;
总结多态的优点-----
1.可替换性。多态对已存在的代码具有可替换性;
2.可扩充性。3.接口性。4.灵活性5.简化性
详细解释如下所示:
面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。