面向对象是一种思想
一.设计步骤:
(1)程序设计首先解决的是基本类的设计(动物)――有属性和方法。
(2)实例化产生对象(人),这样动物有的属性和行为,人不用定义也可以拥有,符合自然规律。
(3)对对象进行各种操作。
二.设计意义:
通过使用面向对象的设计原则,程序员可以把一个复杂程序分成各个独立组成模块,需要具有高内聚低耦合的特性,便于设计与维护。
三.特点:
(1)封装
封装隐藏了类的内部实现机制,可以在不影响使用者的前提下修改类的内部结构,同时保护了数据。
(2)继承
子类继承父类就拥有了父类的属性和方法。同时子类可以重写父类的方法。
(3)多态
相同的方法有不同的表现形式。
i.方法重载
在类中定义了二个或以上的相同名称方法,但它们拥有不同的参数列表。调用时需要完全相同。
ii.方法的重写
在子类中声明了一个和父类相同的方法,父类的方法在子类中就被覆盖了。子类重写父类的方法时访问修饰符要大于或者等于父类的,绝对不能小于。如果要在子类中调用父类被重写的方法,可以使用super.方法名(参数列表),如果不用super.方法名(参数列表),则调用的是自己重写的方法。
iii.父类的引用指向子类的对象时
根据指向的对象不同,同样的方法会有不同的表现。
例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。
Animalanimal1=newCat();或Animalanimal2=newDog();
即声明的是父类,实际指向的是子类的一个对象。
对象的上转型对象的实质是子类负责创建,但上转型对象失去了原对象的一些功能。上转型对象只能操作子类继承的成员变量和隐藏的成员变量、子类继承的方法或重写的方法。
//对象的上转型对象可以调用上型变量(包括被继承和被隐藏的)和下型方法(包括继承的和重写的)
//不能操作子类新增的变量和方法
//可以将上转型对象强制转换成一个子类对象。
//优点总结:可以重写方法,灵活转换,其余与上型一致。