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

原创 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培训、期待与您交流! ----------------------

php 面向对象abstract,interface,重载,子类继承父类

面向对象的三个基本特征是:封装、继承、多态。 封装   封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承   面向对...

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

在学习继承的时候,遇到一些小问题,这里总结一下,有错误望指正: 先来看一段代码: //标准父类 class Father{ //成员变量 private String name; ...

Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序

毕业已有近两年的时间啦,发现大学里刚开始学习的java基础,现在竟然忘得差不多啦,主要原因是平时开发的时候思考的少,所以,才把大学老师教的东西都还给了老师,还好,当时的课件还没丢,现在把当初学习的代码...

关于Scala子类继承父类属性的问题释疑---子类构造器参数不要与父类属性同名

今天和朋友聊到scala继承的时候,发现有一些问题,我

java中的继承-子类继承父类的权限问题

java中的继承         Java语言面向对象有三大特性:封装、继承、多态。其中的继承,描述了一种“is-a”的关系,可以理解为子集合和父集合。子类可以继承父类的方法、域、构造方法。但是,ja...

面向对象,继承,父类子类,继承中构造函数问题,对象初始化器

面向对象的三大特性:封装、继承、多态 什么水是类?什么是对象,类和对象的区别 类是模具,创建对象的模具,抽象的 类是一种数据类型,用户自定义的数据类型 类组成:字段,属性,方法,构造函数等 ...

组合还是继承,这是一个问题?——由模式谈面向对象的原则之多用组合、少用继承

转自《组合还是继承,这是一个问题?——由模式谈面向对象的原则之多用组合、少用继承》 组合还是继承,这是一个问题                                     ...

面向对象里类方法归属问题处理

网上一篇文章《十年之后再看“面向对象”》 http://www.cnblogs.com/freeflying/p/7410167.html 里面有讲到: 我举一个例子: 现在有两个类,一个用户...

面向对象方式解决比赛名单类问题(Java实现)

面向对象方式 解决比赛名单类问题(Java实现)

java 关于初学面向对象的问题四:抽象类

抽象类和接口是多态应用时使用最多的。多态是面向对象编程的一个非常重要的思想,它的含义就是父类的引用指向子类的对象。而抽象类和接口都是用来集成的,不能用来创建对象。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于面向对象里的子类继承问题
举报原因:
原因补充:

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