「java整型类的继承关系」java整数类型分哪四种数据类型
本篇文章给大家谈谈java整型类的继承关系,以及java整数类型分哪四种数据类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Java语言的类间的继承关系是?
子类通过extends 关键字继承父类,便拥有了父类的方法和变量,并可以根据实际情况,对父类的方法进行覆盖(override),继承同一个父类的子类,均拥有父类的特征。
Java中继承关系的理解
继承关系
1、超类和子类的基本概念
2、子类不能继承父类的构造方法。
关于构造方法
执行子类的构造方法的时候,第一步该构造方法要先调用一遍父类的无参数的构造方法。
但是如果子类里面没有任何构造方法,则调用父类的无参构造方法。
可以看相关演示程序1。
演示程序2 是一个App.java不能编译的程序。根据编译时候报的错误,我们可以证明构造方法不能继承。
演示程序3 说明如果子类里面没有任何构造方法,则调用父类的无参构造方法。
覆盖
如果子类中定义的方法跟超类相同,那么,子类的方法将覆盖父类的方法。
覆盖的原则
1、方法名和参数的次序应该同超类方法中的完全相同;
2、两个方法的返回类型必须相同;
3、覆盖方法不能比被其覆盖的超类中的方法访问性差。
例如超类中被覆盖方法被说明成public,你不能在子类中用private关键字覆盖它。
4、覆盖方法不能比被覆盖方法引起更多的异常。
几种约束:
1、子类方法的名称、参数签名和返回类型必须与父类方法的名称、参数签名和返回类型一致。
如 这段代码是错误的。
public class Base
{
public void method()
{...}
}
public class Sub extends Base
{
public int method()
{...}
}
下面的则是正确的
public class Base
{
public void method()
{...}
}
public class Sub extends Base
{
public void method(){...}
public int method()(int a)
{...}
}
2、子类方法不能缩小父类方法的访问权限。
如下面代码就是错误的
public class Base
{
public void method()
{...}
}
public class extends Base
{
private void method()
{...}
}
3、子类方法不能抛出比父类方法更多的异常。
子类方法必须抛出的异常跟父类方法的异常相同,或者子类方法抛出的异常类是父类方法抛出的异常类的子类。
以下代码假设 ExceptionSub1 ExceptionSub2 是ExceptionBase类的子类。这段代码是正确的。
public class Base
{
void method() throws ExceptionBase(){}
}
public class Sub1 extends Base
{
void method() throws ExceptionSub1() {}
}
public class Sub2 extends Base
{
void method() throws ExceptionSub1,ExceptionSub2() {}
}
public class Sub3 extends Base
{
void method() throws ExceptionBase() {}
}
以下代码则是错误的
public class Base
{
void method() throws ExceptionSub1{}
}
public class Sub1 extends Base
{
void method() throws ExceptionBase(){};
}
public class Sub2 extends Base
{
void method() ExceptionSub1,ExceptionSub2{};
}
4、方法的覆盖是指的继承的父类和子类之间。同一个类中方法只能被重载,不能被覆盖。
5、父类的静态方法不能被子类覆盖为非静态的方法。
以下代码错误
public class Base
{
public static void method(){}
}
public class Sub extends Base
{
public void method(){}
}
6、子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。
在编译时,子类定义的静态方法也必须满足:方法的参数签名一致,返回类型一致,不能缩小
父类方法的访问权限,不能抛出更多的异常。
7、父类的非静态方法不能被子类覆盖为静态方法。
以下代码错误
public class Base
{
void method(){...}
}
public class Sub extends Base
{
static void method(){}
}
8、父类的私有方法不能被子类覆盖。
9、父类的抽象方法可以被子类通过两种途经覆盖:一是子类实现父类的抽象方法;二是子类重新声明父类的抽象方法。
以下代码合法:
public abstract class Base
{
abstract void method1();
abstract void method2();
}
public abstract class Sub extends Base
{
public void method1(){...}
public abstract void method2();
}
10、父类的非抽象方法可以被覆盖为抽象方法。
public class Base
{
void method(){}
}
public abstract class Sub extends Base
{
public abstract void method();
}
java中,什么情况下需要将两个类定义为继承关系?
在一个类既需要另一个类里的成员变量和方法,也需要自己不同于另一个类的成员和方法时,可以将两个类定义为继承关系。
继承的概念是:继承是子类继承父类的特征和行为,使得子类对象具有父类的实力域和方法,使得子类具有父类相同的行为。
继承是java实现多态的必要条件。在Java的继承中,只能单继承,也就是一个子类只能有一个父类,一个类可以被多个子类继承。并且支持多重继承,例如A继承B,B就拥有了A的属性和方法,并且B也有自己的属性和方法,C继承B,C就同时有了A和B的属性和方法。并且C也能有自己的属性和方法。
在具体业务写代码时,继承也给我们带来极大的方便,如果没有继承,相同的属性在每个类中都需要写一遍,非常的浪费时间。如果把一些共有的属性和方法写成一个父类,每个子类去继承这个父类,就拥有了我们一些必要的属性和方法。同时我们又能在不同的子类中去写上他们特有的东西。还有一个好处是,如果某一个公共属性发生了变化,或者说增加了某一个公共属性,如果没有继承,你就需要每个类都去做一遍修改,如果有了继承,你只需要去修改父类,所有子类都会跟着变化,极大的节省了时间。
如果只是单单用两个类来说,如果一个类中的属性和方法正好是另一个类所需要的,另一个类也需要自己特有的属性和方法,就可定义为继承关系。
Java继承的Java继承
Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以分隔符先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。
类和类之间的继承关系可以用UML符号表示,其中父类又叫超类或基类,子类又叫派生类。父类是子类的一般化,子类是父类的特化(具体化)。
JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。
在面向对象程序设计中运用继承原则,就是在每个由一般类和特殊类形成的一般——特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和操作一次性地在一般类中进行显式的定义,在特殊类中不再重复地定义一般类中已经定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的属性和操作。特殊类的对象拥有其一般类的全部或部分属性与方法,称作特殊类对一般类的继承。
继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。
继承避免了对一般类和特殊类之间共同特征进行的重复描述。同时,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。
关于java整型类的继承关系和java整数类型分哪四种数据类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。