java基础知识2--抽象 多态,继承等
用super访问父类的方法时,调用的是父类的变量
class Super { int a=1; char b='c'; public void show(){ System.out.println("Super's show() :"+a+" "+b); } public static void main(String[] args) { Super s = new Test(); Test t = new Test(); s.show(); t.show(); } } class Test extends Super { float a=7.9f; String b="dtrin"; public void show() { System.out.println("Test's show() :"+a+" "+b); super.show();//此处输出的是父类的变量的值 } }
Java面向对象编程的四大特征:
抽象:
把一类事物共有的属性和行为提取出来,形成一个物理模型(模板),这种研究问题的方法称为抽象。
封装:
把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法),才能对数据进行操作。
访问控制修饰符:
Public:对外公开。
Protected:对子类和同一个包的类公开。
Default(没有修饰符):对同一个包的类公开。
Private:只有类本身可以访问。
继承:
1.父类的private属性和方法不能被继承,其他都可以。
2.单继承,不能继承多个父类。可以用接口解决多重继承的问题。
3.Java 中所有类的父类都是java.lang.Object。
4.Jdk6中有202个包3777个类,接口,异常,美剧,注释和错误。
重载:
仅仅是返回类型不一样不能构成重载。
仅仅是修饰符不一样不能构成重载。
1.方法名相同。
2.方法的参数类型,个数,顺序至少有一项不同。
3.返回类型可以不相同。
4.方法的修饰符可以不同。
方法的覆盖(重写):
1.子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一致。
2.子类方法不能缩小父类方法的访问权限。
多态:
指一个引用(类型)在不同情况下的多种状态。用过指向父类的指针,来调用在不同子类中实现的方法。
class Animal { public void cry() { System.out.println("动物的叫声"); } public static void main(String args[]) { Animal an = new cat();//父类的引用变量引用子类的实例,这种转换自动完成 an.cry(); an=new Dog(); an.cry(); } } class Cat extends Animal{ public void cry() { System.out.println("猫的叫声"); } } class Dog extends Animal{ public void cry() { System.out.println("狗的叫声"); } }
final:
1.不希望父类的某个方法不被子类覆盖(override)时,可以用final关键字修饰。
2.不希望类的某个变量的值被修改时。如果一个变量时final,必须赋初值。
3.不希望类被继承时,可以用final修饰。
注意:
1.final修饰的变量又称为常量,一般用xx_xx_xx来命名。
2.安全考虑时可以使用。