安卓培训(java篇)第5天—面向对象(下)
super关键字:
语法:super.父类的成员变量和方法;
super();//调用父类的构造方法
用法:如果是调用父类的构造方法,super()必须放在首行;
注意事项:必须存活在子类当中;跟this不能放在静态方法里面;父类的构造方法不会被子类的构造方法所覆盖(注意不需要父类的每个构造方法都输出);
例子:
public class A {
public A(){}
public A(int a){}
}
class B extends A {
public B(){
super(4);//super();都可以
}
}
2.Object类是所有类的基类;
3.toString():返回对象的字符串序列;
注意事项:toString()有返回值,想输出return的值必须有接应(赋值语句);
默认只要输出对象名就相当于调用toString()方法;
例子:
public class A {
public String toString(){ //相当于重写toString();
return "";
//默认:是返回super.toString();调用Object类里面的toString()方法;
//输出为:包名+类名+@+哈希码值;
}
}
4.equals:比较两个不同对象的值是否相等
==(双等号)与equals的区别:
==针对同一个存储空间,所以不同空间只能equals;
建议:八大基本类型用==,其他用equals;
5.对象转型:
向上转型:父类的引用指向子类的对象;
向下转型:子类的引用指向父类的对象;(必须有向上转型,没有向上就没有向下)
注意事项:父类比子类的容量大;(所以对象转型也可以理解成强转);但是对象必须是完整被引用过去,不能像强转一样有溢出;
例子:
public class A {
public static void main(String[] args) {
A a=new B();//向上转型
B b=(B)(new A());//出错,因为溢出了;
B b=(B)a; //向下转型
}
}
class B extends A {
}
instanceOf:表示判断该对象是否属于该类或该类的子类;
语法:对象 instanceOf 类名;返回boolean类型;
6.多态:必须满足三个条件(继承、重写、向上转型)
作用:扩展性好,安全性强;
注意事项:多态可以实现子类重写的方法覆盖父类重写的方法;(只有多态可以覆盖父类的方法)
7.抽象类:
语法:权限+abstract+class+类名{}
注意事项:
用abstract关键字修饰一个类时,这个类叫做抽象类;用abstract修饰方法时,该方法叫做抽象方法;
含有抽象方法的类必须被申明为抽象类;抽象类必须被继承;抽象方法必须被重写,如果重写不了,应该申明自己为抽象;
抽象类不能被实例化;
抽象方法只需申明,而无需实现;
8.final关键字:
final的成员变量的值不能被改变;
final的方法不能被重写;
final的类不能被继承;
本文出自 “坤” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1574797
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。