VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网络工程 > Linux 教程 >
  • 继承(extends), 多态 , 抽象(abstract)接口() 易混难点解析

特性

  • java是单继承的,一个类直接继承的父类只能有唯一的一个
  • java中父类可以有多个子类
  • Object是所有类的父类,一个类没有父类则默认继承Object;

继承中的重写

  • 子类重写方法访问权限不能比父类低
  • 私有(private)方法不能被重写
  • 可以使用@Override 检测方法的重写是否正确
  • 子类返回值必须小于等于父类的返回值

继承中构造方法

  • 子类中所有的构造方法都会默认访问父类中的无参构造方法
  • 子类会继承父类中的数据,可能会使用父类的数据.所以子类初始化之前,一定会先完成父类数据的初始化.
  • 每一个子类构造方法的第一条默认语句都是super();
  • 父类中没有无参,只有有参
  1. 可以通过super关键字显示调用父类的带参构造方法
  2. 在父类中自己提供一个无参构造方法

 



 

多态中的成员访问

  • 成员变量  :  编译看左边,执行看左边
  • 成员方法  :  编译看左边,执行看右边

 父类引用指向子类对象(向上转型)

Animal  a=new  Cat();

父类引用可以访问子类重写方法;

 父类引用转为子类对象(向下转型)

 Cat  c=(Cat)a;

a.eatyu();

可以访问子类特有方法

 



 

抽象(abstract)

  • 抽象类和抽象方法都必须使用 abstrsct 关键字修饰
  • 抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
  • 抽象类不能实例化

抽象类可以参照多态的形式,通过子类对象实例化,这叫抽象类多态

  • 抽象类的子类要么是抽象方法,要么重写抽象方法;


接口(interface)

接口的特点

  • 接口用关键字 interface 修饰

public  interface  接口名{...}

  •  类实现接口用  implements  表示

 public  class  类名  implemends  接口名{...}

  • 接口不能直接实例化

接口参照多态的形式,通过实现类对象实例化,这叫做接口多态

 接口的成员特点

  • 成员变量

成员变量只能是常量

接口中的成员变量默认使用  public  static  final  修饰

 
  • 构造方法

接口没有构造方法,因为接口主要是对行为进行抽象的,没有具体存在

  • 成员方法
  • java8之前接口只能是抽象方法

默认为  :  public  abstract 

  • java8开始接口允许使用默认方法,可以解决接口升级的问题

格式:

public  defoult  返回值类型  方法名称(参数列表){ 方法体... }

  • java 8 还允许了静态方法

格式 :public  static  void  方法名(){  方法体...}

静态方法通过接口名称调用

  • java 9 以后接口允许定义私有方法
  1. 普通私有方法:解决多个默认方法之间的代码重复问题

格式:private  void  方法名称(参数列表){  方法体... }

        2.  静态私有方法:解决多个静态方法之间的代码重复问题

格式:private  static  void  方法名称(参数列表){ 方法体... }

 

原文:

https://www.cnblogs.com/XIAOPY/p/14810619.html

相关教程