关于面向对象里的子类继承问题

原创 2012年03月29日 14:43:33

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------


/*面向对象的两大基本特征“继承”和“多态”使它区别于“基于对象”。

   实际上,“继承”是“多态”的基础,“多态”是“继承”的一种重要表现,两者密不可分。
   方法的名称和参数表只是方法的一个声明,打比方来说就相当于对象的一个引用,引用的内容便是放在由方括号括起的代码块;
在abstract类和接口(Interface)里,可以将方法的声明和实现分隔开。即使没有将方法的声明和实现分隔开,在编译的时候,编译器需要的也只是方法的声明,其具体实现只有在运行时才会被关心。因为在java中,所有方法绑定都为“运行时绑定”,除非一个方法被明确声明成final。

    子类通过定义一个和父类的某个方法拥有同样名称和参数表的方法来达到“覆盖”的目的。但是要记住的是,在子类内部能够访问到那个父类方法是覆盖该父类方法的一个必要前提!如果在子类内部看不到那个父类方法,即使定义了和父类的某个方法拥有同样名称和参数表的方法,实质上也没有达到“覆盖的真正目的”。

*/


覆盖和重载的区别:
public class Base{
    public void method(){
    }
}

public class Sub extends Base

{
    public void method(){ } 
//覆盖Base类的method方法
    public int method(int a){ }
//重载Sub类的method方法

}




/*

1.子类方法不能缩小父类方法的访问权限(可以扩大),而且子类不能抛出比父类方法更多的异常,其必须抛出和父类方法抛出的相同的异常,或者子类方法抛出的异常类是父类方法抛出的异常类的子类。
2..父类的静态方法不能被子类覆盖为非静态方法。同样,父类的非静态方法不能被子类覆盖为静态方法。
3..子类可以定义与父类的静态方法同名的静态方法,以便在父类中隐藏父类的静态方法。子类覆盖静态方法和覆盖一般方法的区别是,运行时,JVM把静态方法和所属类绑定,而将一般方法和所属实例绑定。
4..父类的私有方法不能被子类覆盖。虽然不会出现编译错误,但是实际上子类并没有从父类继承这个方法,所以,其并没有覆盖关系。
5..父类的抽象方法通过子类实现父类的抽象方法或者子类重新声明父类的抽象方法来实现覆盖。
6..父类的非抽象方法可以被覆盖为抽象方法。

*/



---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

面向对象是什么鬼(OOP)

什么是面向对象我们知道现代的编程方式基本上都是面向对象了,那么面向对象是什么鬼,面向对象跟面向过程有什么不一样? 面向对象编程(英文Object Oriented Programming),所以也叫...
  • q932104843
  • q932104843
  • 2016年08月24日 11:09
  • 632

面向对象三大特征和解决的问题

一:什么是“对象” 在计算机的世界里,对象(Object)就是进行研究的任何事物。小到螺丝钉,大道飞机大炮,都可以被看成是一个对象,每一个对象都有各自的属性和操作。以“狗”为例:颜色、体重等都是狗这...
  • dsa63
  • dsa63
  • 2014年02月04日 14:32
  • 1049

JavaScript 面向对象之 this 关键字详解

js面向(基于)对象编程——类(原型对象)与对象 this—问题提出 在实际编程中,我们可能有这样的需求,当我们创建一个对象后,就希望该对象自动的拥有某些属性(比如:当我们创建一个Pers...
  • u013372487
  • u013372487
  • 2015年10月09日 16:43
  • 1486

(整理)常用面向对象术语中英文对照

Object Oriented          面向对象Object Oriented Analysis   面向对象分析Object Oriented Design     面向对象设计Objec...
  • lbdz
  • lbdz
  • 2006年08月07日 17:09
  • 1080

OOP(面向对象面试题)

OOP(面向对象) 1:说出一些常用的类,包,接口,请各举5个 常用的类:BufferedReader  BufferedWriter  FileReader  FileWirter  Strin...
  • nysyxxg
  • nysyxxg
  • 2013年04月08日 20:32
  • 3385

约瑟夫环算法用面向对象的一种实现

首先介绍下约瑟夫环: 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的...
  • thc1987
  • thc1987
  • 2014年06月03日 16:45
  • 1761

面向对象(需要注意的问题)

面向对象(成员变量和局部变量的区别) 1:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上  2:在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存)...
  • a18622032257
  • a18622032257
  • 2015年10月23日 01:23
  • 320

C++面向对象方法求解约瑟夫环问题

约瑟夫问题有很多种解法及其变种,这里的约瑟夫环问题是这样的: [b]约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数...
  • u010155023
  • u010155023
  • 2015年02月14日 12:39
  • 1079

关于产品推荐的10个问题

许多零售商使用自动的产品推荐技术来增加他们的销售额和转化率。这些推荐的物品通常是商业站点上动态生成的,通常基于特定客户或一组客户的购买习惯。 Strands Recommender 是一个领先的...
  • ozhaohuafei
  • ozhaohuafei
  • 2014年07月05日 19:58
  • 1790

子类继承父类时,创建对象,构造方法的调用问题

在学习继承的时候,遇到一些小问题,这里总结一下,有错误望指正: 先来看一段代码: //标准父类 class Father{ //成员变量 private String name; ...
  • qq_20085465
  • qq_20085465
  • 2017年11月03日 21:05
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于面向对象里的子类继承问题
举报原因:
原因补充:

(最多只允许输入30个字)