java的封装,继承,多态
子类继承父类(继承),父类引用子类(多态)
封装
该露的露,该藏的藏
程序设计追求高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成。不允许外部干涉,低耦合:仅暴露少量的方法给外部用。
属性私有:get/set
在两个类中,一个类的属性设置为私有,私有只能本类使用。
封装就是让我们使用get,和set设置封装。即可在外部类使用私有属性。
还外部设置(set),和使用(get)
封装大多给属性用,方法少用;
1.封装可以是程序更加安全,但输入的程序不合法时,可以设置其变为合法数据。
2.保护用户数据,用户只能使用get和set,内部核心代码看不到。
3.统一解口,get,和set。
4.系统可维护增加,便于修改内部代码。
继承(对类再次抽象)
格式: <修饰符>class<子类名>extends<父类名>{…}
1.什么是继承:继承的本质是对某一批类的抽象,从而实现对现实世界的更好地建模。
2.extands的意思是“扩展”。子类是父类的扩展
3.一个类只能有一个父类,单继承
4.继承关系有里两个类,一个位子类(派生类),一个为父类(基类)。子类继承父类。使用关键字extends
5.子类可以用父类的public属性,protected 属性,私有类(private),无法用。同包private属性可继承不可见。不同包,默认,protected ,private 可继承不可见
6.在new子类的时候,会先创建父类,会默认自动调用父类无参默认方法,如没有,会报错
7.创建默认调用无参构造方法,如果没有无参构造方法,指定一个构造方法。
多态(子类和父类的关系)(父类引用指向子类的对象就是多态)向上转型
优点:既有父类属性,又有子类属性,使代码更加灵活,可以使用的范围更大,既可以使用父类们也可以使用子类。参数:既可以传父类,也可以传子类。
把类想像成属性可以强制转换类(向下转换(不安全的)和向上转换(安全的,多态))向上转为多态
多态的概念:(同一种方法可以根据发送对象的不同而采用不同的行为方式(子类和父类))
1.多态是方法的多态,属性没没有多态
2.子类和父类,有联系,类型转换异常 classCastException
3.存在条件:继承关系 ,方法需重写,父类引用指向子类对象,
子类继承一个父类
子类重写了一个父类的方法,执行子类的方法。
Student s1 = new Student();
Person s2 = new Student(); //向上转(安全,是多态)
student s5 = (student)s2 ; // 向下转(不安全,不是多态)
Object s3 = new Student();
Student s4 = new Person(); //向下转
((Student)s2.eat)
同级无法转换,人,中国人,美国人
中国人和美国人是同级
instanceof 的使用 :可以用来比较类与类的关系
super关键字使用
super可以调用父类的方法,写在第一行。
super.方法
super和this调用构造方法时,都必须写在第一行,只能使用一种。this调用自身类的方法。
分清this调用行为和属性
三个重点:object ,super ,方法重写
object 所有类的父类
不能重写的方法:
static属于静态,属于类,不属于实例
final 常量
private 方法,私有不能重写方法