A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李洋 中级黑马   /  2013-11-7 10:45  /  1822 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承 概念:当两个或两个以上的类,具有部分相同的内容(属性和方法)并且可抽象出另一个类彼此之间满足is-a关系,这种关系就是继承 继承语法(关键字为extends) public class 父类名 {  } public class 子类名 extends 父类名 {  } 继承规范: 1、当两个或两个以上的类,具有部分相同的内容(属性和方法)并且可抽象出另一个类彼此之间满足is-a关系必须要用继承 2、当相似代码出现多次,用方法代替  重点: 在继承关系中,父类更通用、子类更具体更有一版特性和行为,而子类除了具有父类的特性和行为,还具有一些自己的特殊的特征和行为。 在子类继承父类中构造方法和私有方法不能被继承。 在java中只能单一继承 继承的优点: 1、代码的可重用性 2、父类的属性和方法可用于子类 3、设计应用程序变得更加简单 4、可以轻松地自定义子类super调用构造方法 调用构造方法规范: 1、构造方法默认第一句super()。 2、若父类只有一个有参构造方法则子类必须定义构造。 3、一旦类中定义构造方法,那么JVM虚拟机不定义默认构造方法。 4、super() 调用父类构造方法时必须是子类构造方法中的第一句。           super关键字的用法
super()调用父类构造方法
super.父类中实例方法名/属性调用父类的实例方法,调用非私有属性。
举例: //子类用 super 关键字调用父类无参构造 public class 父类名 {  public 父类名()  {    } } public class 子类名 extends 父类名 {  public 子类名()  {   super(); //super() 调用父类构造方法时必须是子类构造方法中的第一句。  } }  //子类用 super 关键字调用父类有参构造 public class 父类名 {  public 父类名(数据类型 参数1,数据类型 参数2)  {    } } public class 子类名 extends 父类名 {  public 子类名(数据类型 参数1,数据类型 参数2) //若父类只有一个有参构造方法则子类必须定义构造。  {   super(参数1,参数2);  //super() 调用父类构造方法时必须是子类构造方法中的第一句。  } } this关键字的用法
this()调用该类本身其他的构造方法
this.属性调用方法非私有属性等
   方法重写  概念:在子类中定义的一个方法,其名称、返回类型及参数类表正好与父类中某个方法名称、返回类型及参数类表相匹配,       那么可以说,子类的方法重写了父类的方法。  重写规范: 1、存在类的层次结构(存在子类和父类中)。 2、返回类型、方法名和参数列表相同。 3、方法体不同。 4、子类重写时,方法访问修饰权限不低于父类的权限。 5、子类重写的方法不能抛出父类不包含的异常。 多态 概念:同一个实现接口,使用不同的实例而执行不同的操作。 实现步骤: 1、子类重写父类的方法 2、把父类类型作为参数类型,该父类及其子类对象作为参数传入。 3、运行时,根据实际创建对象类型动态决定使用哪个方法。 4、父类引用指向子类对象时注意:该引用只能调用父类自己的方法或者是子类已重写的方法。并且首先实例化父类的构造方法 举例: //车类(父类) public class Vehicle{  //运输方法   public void transportation(){   System.out.println("车能运输!")  } } //公交车类(子类) public class Bus{  //子类重写父类运输方法   public void transportation(){   System.out.println("公交车运输人!")  } }  //货车类(子类) public class Truck{  //子类重写父类运输方法    public void transpotation(){   System.out.println("货车运输货物!")  } } /测试类 public class VehicleTest{  //把父类类型作为参数类型,该父类及其子类对象作为参数传入。   public void transport(Vehicle vehicle){   vehicle.transpotation();  }   //main方法  public static void main(String[] args){    //父类引用子类对象   Vehicle bus = new Bus();      //父类引用子类对象   Vehicle truck = new Truck();      //创建测试对象   VehicleTest vehicleTest = new VehicleTest();   //把子类对象作为参数传入   vehicleTest.transport(bus);   //把子类对象作为参数传入   vehicleTest.transport(truck);  } } 多态的优点: 1、不仅能减少编码的工作量,也能大大提高程序的可维护性及可扩展性。 2、多态能改善代码结构,提高其可读性。 3、多态是从类的角度来处理逻辑上的分离。 4、能把多个类(派生同一个基类)当做一个类来处理。这样就能作用于不同的类型了。继承、重写和多态的优点: 1、使用继承有效的实现代码的复用。 2、提高了系统的可扩展性和可维护性。

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

2 个回复

正序浏览
感觉好难理解啊
回复 使用道具 举报
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马