Java.3面向对象继承

来源:互联网 发布:面试问hash算法 编辑:程序博客网 时间:2024/06/05 18:08

1.继承:java允许从一个类中派生出另外一个类,派生出的类具有父类的所有的非私有的属性和方法。

大大减少重负率,可以提升效率。(代码重用)
java是单一继承,一个子类只允许有一个父类,可以多重继承,父类也可以有父类
父类,超类,基类
子类,派生类
class B extends A{
}
super:子类对象中,代表父类的引用。
1.super可以访问父类的非私有属性。
2.super可以访问父类的非私有方法。
3.super可以访问父类的构造访问。(写不写,构造方法的第一次调用必须先调用super的构造方法)
创建子类之前,必须先创建父类。父类的构造方法 一定会执行到。
如果父类没有构造方法,那么默认拥有无参构造方法,子类的构造方法可以省略super();
如果父类没有无参构造方法,只有有参构造方法,子类的所有构造方法,必须显示的指定调用父类的有参构造方法;
继承的关系是 is-a(一个类是另外一个类)
Object
所有类的祖先类
toString(),hashCode(),getClass,equlas();clone(),notfiy(),wait(),,ntifyAll(),finaliz()
重写:
在子类中,父类和子类具有方法名,返回值,参数列表完全相同的方法,访问权限必须大于父类,就是子类对父类的方法重写。private和final的方法不允许被重写。
抽象类:abstract修饰的类就是抽象类,抽象类不允许实例化。
抽象方法:abstract修饰的方法就是抽象方法,抽象方法必须在抽象类中,抽象方法被具体子类重写。
抽象方法没有方法体。
抽象方法必须放在抽象类
抽象类中可以没有抽象方法
抽象类中可以包含非抽象方法
abstract不能和final,private,static,native
面向对象多态
允许不同类的对象对于同一个消息进行完全不同的响应方式。
父类的引用指向子类的对象 向上转型(Object处于顶层)
必须存在继承关系
必须存在重写方法
父类 对象=new 子类();
编译器看父类有没有该方法。
运行期调用子类的重写方法。
只有方法具有多态性,属性不会多态,哪个引用访问,那么调用该引用的属性。
instanceOf:
判断左边的对象是否属于右边类或者其子类的实例,返回boolean值
boolean = 对象 instanceOf 类
用来做向下转型,可能需要转换成子类后,调用子类独有的方法,那么必须要先判断是否是该子类的对象,防止出现ClassCastExecption.




原创粉丝点击