封装性:
对属性:
权限修饰符有:public:类内部、同一个包不同包的子类内、一个工程内
protected:类内部、同一个包不同包的子类内
缺省:类内部、同一个包
private:类内部
对方法:
权限修饰符有:
1.static-静态方法
2.final
3.native
4.abstract
———————————————————————————————————————
继承性
- 当多个类拥有多个相同的属性或者方法,可以利用继承性避免冗余方式
- 类与类之间产生了关系,为多态提供了前提
使用方法:
class Student extends+类名{这个类名就为提供相同属性或方法的父类,Student类为子类
.....
}
注意点:
1.不为了继承而继承,必须具有实际的生活中的关系
2.类与类只能继承一次,一个类只能有一个父类
3.直接父类与间接父类
4.子类能获取直接父类和间接父类
5.一个类若没有显示其声明的父类,则默认的父类为java.lang.Objectl类
5.在父类中声明有参的构造器时还必须声明一个无参的构造器,原因如下:
1)编译器会给子类提供默认的构造器。
2)编译器不会给父类提供默认构造器,因为父类已经定义一个构造器了。
3)子类在实例化时,会调用父类的默认构造器,但是–父类没有,因此逻辑上是有错的。
———————————————————————————————————————
多态性
1.多态性,理解为一个事物的多种形态
2.java的多态性可以理解为子类对象的多态性;
子类对象的多态性:父类的引用指向子类的对象
public class Person
public class Man extends Person
public class Woman extends Person
public class TEXT{
Person t1= new Man
3.多态性的应用:
1.虚方法的调用:编译时,引用变量只能调用声明的类型中的结构,在真正调用时,实际执行的是子类重写方法父类的方法(编译看左边,运行看右边–针对方法),如:
public class Man extends Person
public class Woman extends Person
public class TEXT{
Person t1= new Man
对t1操作时只能调用Person中的方法,但执行的结果是Man中重写父类的方法
4.多态性前提:1.类的继承关系 2.方法重写
5.多态性只适用于方法,不适用属性
6.向上/下转型
向下转型:
Man t2=(Man)t1//强制转换-必须具有子父类关系
便可调用t2中独特的方法;
在强转前用(instanceof)可以避免ClassCastException.
a instanceof A(判断对象a是否类A类型)如果结果是true那么a instanceof B(B是A的父类)也是true