概述
今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习
继承
1、继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态
2、继承"基本"作用是代码复用。
但是继承最重要的作用是:有了继承才有以后"方法的覆盖(方法覆盖/方法重写)“和"多态机制”
3、继承语法格式:
[修饰符裂变] class 类名 extends 父类名{
类体 = 属性 + 方法
}
4、java语言当中的继承只支持单继承,一个类不能同时继承很多类,只能继承一个类。在c++中有多继承
5、关于继承中的一些术语
B类继承A类,其中:
A类称为:父类、基类、超类、superClass
B类称为:子类,派生类、subClass
6、在java语言中子类继承父类都继承哪些数据呢?
-私有的不支持继承
-构造方法不支持继承
-其他数据都可以被继承
也就是说,除了父类中的私有方法和构造方法不能够继承其他数据皆可继承
7、虽然java语言当中只支持单继承,但是一个类也可以简介继承其他类,例如
C extends B{
}
B extends A{
}
A extends T{
}
C直接继承B类,但是C类间接继承T、A类
8、java语言中假设一个类没有显示继承任何类,该类默认继承JavaSE库中的java.lang.Object类,java语言中任何一个类都有Object类的特征
下面我们来写一下关于继承机制的一个例子:
package Day3;
public class Account {
//设定一个账户类包括其中的属性
private String actno;//账户名
private double balance;//账户余额
public Account() {//无参构造方法
super();
}
public Account(String actno, double balance) {//有参构造方法
super();
this.actno = actno;
this.balance = balance;
}
public String getActno() {
//由于设定的是private私有,需要用set、get方法获取其中的数据
return actno;
}
public void setActno(String actno) {
this.actno = actno;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
package Day3;
public class CreditAccount extends Account {
//该类继承账户类
//私有方法不支持继承
private double credit;
//子类中特有属性
public CreditAccount() {
}
public double getCredit() {//子类中特有的类
return credit;
}
public void setCredit(double credit) {
this.credit = credit;
}
}
package Day3;
public class Extends {
public static void main(String [] args)
{
Extends et = new Extends();//继承Object父类、超类、superclass、基类
String s = et.toString();
/*
toString是Object中写的内容
默认继承Object类
*/
System.out.println(s);
CreditAccount act = new CreditAccount();//创建子类对象
act.setActno("act-001");//给子类对象属性赋值
act.setBalance(-1000);
act.setCredit(0.99);
System.out.println(act.getActno() + " , " + act.getBalance() + " , " + act.getCredit());
}
}
关于java语言中的方法重载:
1、方法重载又称为overload
2、方法重载什么时候使用?
当在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员编程,就像在调用一个方法似的,代码美观
3、什么条件满足之后构成方法重载
- 在同一个类当中
- 方法名相同
- 参数列表不同:类型、顺序、个数
4、方法重载和什么无关?
- 和方法的返回值类型无关
- 和方法的修饰符列表无关
关于java语言中的方法覆盖
1、方法覆盖又被称为方法重写,英语单词override/overwrite
2、什么时候使用方法重写?
当父类中的方法以及无法满足当前子类业务需求,子类有必要将父类中继承过来得到方法进行重写编写,这个重写编写的过程称为方法重写/方法覆盖
3、什么条件满足之后方法会发生重写呢?【代码组成什么条件之后,就构成方法的覆盖呢?】
- 方法重写发生在具有继承关系父子类之间
- 返回值类型相同,方法名相同,形参列表相同
- 访问权限不能更低,可以更高,public为最高
- 抛出异常不能更多,可以更少。
4、简易方法重写时候尽量复制粘贴,或者直接生成,不容易出错,不要编写,容易出错
5、注意:
- 私有方法不能继承,所以不能覆盖
- 构造方法不能继承,所以不能覆盖
- 静态方法不存在覆盖
- 覆盖只针对方法,不谈属性
eg
public class Extends {
public static void main(String [] args)
{
Animal al = new Animal();//创建动物对象
al.Animal();
Bird rd = new Bird();//创建小鸟对象
rd.Animal();
Cat at = new Cat();//创建小猫对象
at.Animal();
}
}
package Day3;
public class Animal {
public void Move()
{
System.out.println("动物在移动");
}
}
package Day3;
public class Bird extends Animal{
public void Move()
{
System.out.println("小鸟在飞翔");
}
}
package Day3;
public class Cat extends Animal {
public void Move()
{
System.out.println("小猫在走猫步");
}
}
此处其他动物类都有动物移动move()的功能,我们在此刻,使用子类( Cat 、 Bird )继承父类( Animal ),又由于不同动物的移动方式不同,在此刻需要根据不同子类所需,对其进行不同类别功能的实现,在此我们把这种操作称为方法重写
最后
以上就是义气龙猫为你收集整理的Java中的继承机制今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习的全部内容,希望文章能够帮你解决Java中的继承机制今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复