类的继承,接口的实现,抽象类

继承的特性

  • 子类拥有父类非private的属性,方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。(重写)

  • Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

接口

接口中的方法定义规则:
https://blog.csdn.net/u010412719/article/details/52536233/

  • 接口可以定义静态方法,但必须实现,且必须是public static ,无public也会默认认为是
  • 对于普通方法,修饰符为: public, abstract, default以及组合 public abstract
public interface InterfaceDemo2 {

         public void test();//public
         void test2();// default
         abstract void test3();//abstract
         public abstract void test4();//public abstract

    }
  • 总结如下:即只允许public,abstract,default,static,public abstract,public static,来作为修饰接口中的方法,其它是不允许的。

接口的实现:当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
接口的继承:接口可以多继承(类多继承其中实现的方法属性可能混淆,但接口只是抽象的声明就不会有这个问题)

抽象类

  1. 抽象类与实体类没什么不同,抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

  4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

  5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

猜你喜欢

转载自blog.csdn.net/weixin_38719347/article/details/82385943