day10-继承类

每个编译单元(文件)都只有一个public   类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public   类,编译器就会报错。  并且public类的名称必须与文件名相同(严格区分大小写)。  当然一个编译单元内也可以没有public类。

在一个源文件.JAVA文件中可以有很多类,只有一个PUBLIC类其他的都不能是.  

 

 

 

在java中:1.类只支持单继承 不支持多继承

class A{}

     class B12563{}

     class C extends A,B{}  // C类不可以同时继承A类和B类

  1. 多个类可继承一个父类

   class A{}

     class B extends A{}

     class C extends A{}   // 类B和类C都可以继承类A

  1. 在Java中,多层继承是可以的

  class A{}

     class B extends A{}   // 类B继承类A,类B是类A的子类

     class C extends B{}   // 类C继承类B,类C是类B的子类,同时也是类A的子类

 

  1. 成员方法特殊情况——覆盖

子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。

 

重写需要注意的细节问题:

  1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

class Fu(){

void show(){}

    public void method(){}

}

class Zi() extends Fu{

public void show(){}  //编译运行没问题

    void method(){}      //编译错误

}

 

当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

写抽象类的时候注意:

原来我写的内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以不做其他变动的情况下,最简单的解决办法是将public class改为public static class.

   public static abstract class Employee {

public static abstract class Develop extends Employee{

public static class JavaEE extends Develop{

JavaEE ee = new JavaEE();//这样JavaEE才不会报错。

猜你喜欢

转载自blog.csdn.net/m0_38118945/article/details/81170665