java 类的继承与多态

1 类的继承

被继承的类b称为父类,相应的类a称为子类。
一个父类可以同时拥有多个子类,一个子类只能有一个直接的父类。
语法:
[类修饰符] class 子类名 extends 父类名
{类体}

2 方法的覆盖

有事继承下来的方法不符合要求,这是就可以使用覆盖技术(override)解决这个问题。
覆盖就是在子类中对需要覆盖的成员用与父类中相同的格式,再重新定义声明一次,以实现对继承下来的成员方法进行功能的重新实现。
方法覆盖一定是方法名、参数列表都相同,如果参数列表不同就不是覆盖(就变成了重载)。
this关键词代表的是当前对象
如果要使用父类被覆盖的方法或被隐藏的变量,可以使用super关键词:
	super.成员变量----访问父对象被隐藏的成员变量。
	super.成员方法([参数列表])----访问父对象的被覆盖的成员方法。
	super([成员列表])----访问父对象的构造方法,只能出现在子类的构造方法的第一行。

3 方法的多态性

可以将子类赋值给父类:
a(父类) = new b(子类)([参数列表])
然后就可以调用子类和父类都有的方法,或子类继承的方法。
如果要调用父类不存在的方法可以将父类强制转换成子类:
((b)a).方法();
在强制类型转换时有可能引起程序的严重错误,为了避免这种错误,转换前最好使用instanceof运算符进行类型判断。他的作用是判断一个对象是不是某个类的实例,是返回true,否则返回false:
if(a instanceof b)
	((b)a).方法();

4 继承中的封装性

protected 关键字----其子类可以访问,其他类具有包内访问的权限。

5 抽象类

抽象类是子类某些共同特性或相似功能的抽象,这些抽象无法完全描述每个子类的特性,因此某些抽象出来的方法没有办法编写方法体,这种没有方法体的方法被称为抽象方法且带有抽象方法的类必须被定义为抽象类。
使用abstract关键字修饰的方法就是抽象方法,修饰的类就是抽象类。

6 final修饰符

如果一个类使用了final修饰符,那么这个类不可能有子类,这样的类被称为最终类。
增强了程序的健壮性和稳定性。
final关键字不仅能修饰类还可以修饰方法和属性。
被final关键字修饰的方法是不能被覆盖的方法。
final修饰属性有两种方法:
	1 与static关键字同时使用,这时的属性是不可改变的常量。常量通常也同时使用public关键字(常量标识符所有字母大写,不同单词用下划线分隔)。
	例:Math类中定义的常量”public static final double PI=3.1415926535798932;“
	2 单独用final关键字修饰成员变量,这时变量不设定初始值,被称为空白final类型,必须在构造方法中为其赋初值。
final与abstrac(要求必须被继承)不能同时修饰同一个类或方法,这两个修饰符相互矛盾。

7 Object类

Object类是java中所有类的根类,Java语言规定所有类都是由Object直接(没有使用extends关键字)或间接派生出来的。
1 protected viod finalize()方法
	用于释放储存空间。
2 public String toString()方法
3 public boolea equals(Object obj)方法
	用于判断某个对象与当前对象是否相等----判断的是引用地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的继承是面向对象编程中的一种重要概念,通过继承可以实现之间的父子关系,子可以继承的属性和方法。在继承关系中,子可以对父的方法进行重载和覆盖,从而实现多态的概念。 通过继承,子可以继承的非私有成员变量和方法。这样可以实现代码的复用,避免重复编写相似的代码。通过继承,可以在子中调用父的方法,也可以在子中新增自己特有的方法和属性。子还可以对从父继承来的方法进行修改,以适应自己的需求。 多态是指同一型的对象,在不同的状态下表现出不同的行为。在Java中,多态性可以通过继承和方法的重写实现。当父的引用指向子的实例时,可以通过该引用调用子中重写的方法,实现不同的对象调用同一个方法产生不同的结果。多态可以提高代码的灵活性和扩展性,使得程序更易于维护和扩展。 在Educoder平台上,可以通过练习和编程任务来学习和掌握Java继承多态。通过编写继承的子,重写父的方法以及引用父的实例来实现多态,可以更好地理解和应用这两个概念。平台提供了丰富的练习题和编程任务,帮助学习者提高对继承多态的理解和应用能力。 总之,Java中的继承多态是面向对象编程中的重要概念,通过继承可以实现代码的复用,多态可以实现不同对象的不同行为。在Educoder平台上通过练习和编程任务,可以更好地学习和掌握这两个概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值