7.JAVA中的继承和多态
类的继承
1.public类可以被继承。
2.abstract类可以被继承。
3.final类不能被继承。
方法和属性的继承
1.如果子类构造函数没有显式调用超类构造函数,将会自动调用超类的无参构造函 数,若超类没有无参构造函数,子类中又没有显式调用,则编译器报错。
2.private修饰符的数据或方法不能被继承。
3.protected修饰符的数据或方法,可以被同个包中的任何一个类访问(包括子类),也可以被不同包中的的子类访问。
4.static修饰符的数据或方法可以继承,虽static方法可重写,但不支持多态。
5.final修饰符的数据或方法可以继承,但final属性不可二次赋值,final方法不可重写。
public class AAA {static int a=1;private int b=2;final int c=3;protected int d=4;public int e=5;static final int f=6;static void xxx(){System.out.println("this is aaa static");}public void yyy(){System.out.println("this is aaa");}final void zzz(){System.out.println("this is aaa final");}}public class BBB extends AAA {int a=11;int b=12;int c=13;int d=14;int e=15;int f=16;static void xxx(){System.out.println("this is bbb static");}public void yyy(){System.out.println("this is bbb ");}//final void zzz(){ //final方法不能重写//System.out.println("this is aaa final");//}}public class Test{public static void main(String[] args){BBB bbb=new BBB();System.out.println(bbb.a);System.out.println(bbb.b);System.out.println(bbb.c);System.out.println(bbb.d);System.out.println(bbb.e);System.out.println(bbb.f);bbb.xxx();bbb.yyy();bbb.zzz();System.out.println("----------------------");AAA aaa=new BBB();System.out.println(aaa.a);//System.out.println(aaa.b);// private 不能继承System.out.println(aaa.c);System.out.println(aaa.d);System.out.println(aaa.e);System.out.println(aaa.f);aaa.xxx();aaa.yyy();aaa.zzz();}}