Java 继承与多态

前言

封装,继承与多态三者为面向对象编程的三大特性,今天我们的主题是后两者继承多态

      在了解继承与多态之前,我们需要先引入一个概念——

简单来说包就是用来存放Java文件的文件夹,其作用是对类来进行一个分类,便于管理与查找。

不同包中的java文件想要相互访问需要先对包进行导入

          导入包的代码如下:

import 包名.类名

特别提醒:当需要导入包中的所有类时,类名替换为*

 

1. 继承

所谓继承就是子类从父类那里继承父类所有的属性方法私有属性与方法除外

                                           

老虎,狮子,熊猫,它们都具有动物的基本特征和行为,所以它们都是动物

这里我们就可以称老虎狮子熊猫为动物的子类

          Java继承语法的代码格式如下:

class 子类名 extends 父类名{

}

特别提醒:Java中的继承为单继承,即一个子类只能有一个直接的父类

 

2. 多态

多态可细分为重载重写

相同点

      重载与重写的相同点是两者均可在类中对方法名相同的方法进行重新定义

不同点

重载

一般用于类中的方法在使用时须接受不同参数的情况

              Java重载语法的代码格式如下:

public float A(float B){

}
public int A(int C){

}

方法重载时参数列表不能相同,其中返回值类型并不能区分方法的重载

特别提醒:构造方法也可以实现方法的重载

 

重写

    一般用于子类需要在不影响父类源码的基础上对所继承来的方法进行修改的情况

              Java重写语法的代码格式如下:

public class B{
//创建父类B
	public void A() {
    //父类中的方法A
		System.out.println("作为鸟类在天空由翱翔");
	}
}
class C extends B{
//创建子类C继承于父类B
	public void A() {
    //重写从父类中继承来的方法A
		System.out.println("作为鸵鸟只能在陆地上拍拍翅膀奔跑");
	}
}

重写要遵循“两同两小一大”规则:

        两同

1.方法名相同

2.形参列表相同

        两小

1.子类返回值类型应比父类返回值类型范围更小或相等

2.子类方法声明抛出的异常变量应比父类方法抛出的异常变量范围更小或相等

        一大

1.子类方法的访问权限应比父类方法的访问权限更大或相等

 

      重写覆盖问题

在子类重写完继承的方法后便会覆盖原来继承的方法,如果需要访问被覆盖的方法,便需要使用super关键字

              Java super关键字用法的代码格式如下:

public class B{
//创建父类B
	public void A() {
    //父类中的方法A
		System.out.println("作为鸟类在天空由翱翔");
	}
}
class C extends B{
//创建子类C继承于父类B
	public void A() {
    //重写从父类中继承来的方法A
		System.out.println("作为鸵鸟只能在陆地上拍拍翅膀奔跑");
        super.A();
        //在重写后的A方法中使用super关键字调用父类的A方法
	}
}

 

instanceof 运算符

    instanceof 运算符的作用是判断所选对象是否为所选类创建,若是会返回 true ,否则返回 false

              Java instanceof运算符用法的代码格式如下:

public class B{
//创建父类B
	public void A() {
    //父类中的方法A
		System.out.println("作为鸟类在天空由翱翔");
	}
}
class C extends B{
//创建子类C继承于父类B
	public void A() {
    //重写从父类中继承来的方法A
		System.out.println("作为鸵鸟只能在陆地上拍拍翅膀奔跑");
        super.A();
        //在重写后的A方法中使用super关键字调用父类的A方法
        B s=new C();
        //用父类B声明对象 s,用子类C创建对象 s
        if(s instanceof C){
            //通过instanceof运算符判断对象 s 是否是子类C所创建的
        }
	}
}

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用提到了头歌实践作业中关于Java继承多态的练习和任务描述。引用给出了Java继承的语法示例,可以使用extends关键字实现类的继承。引用提到了方法重写和重载是Java多态性的不同表现,重写父类子类之间多态性的一种表现,而重载则是多态的具体表现形式。 综合来看,头歌中的练习和任务描述主要涉及Java继承多态继承是一种面向对象的编程概念,它允许一个类继承另一个类的属性和方法。在Java中,可以使用extends关键字来实现类的继承。而多态性则是指一个对象可以具有多种形态,即同一个方法可以在不同的对象上产生不同的行为。在Java中,多态性的表现包括方法重写和重载。方法重写是指子类重新定义父类中已经存在的方法,以实现自己的逻辑。而方法的重载是指在同一个类中定义多个同名但参数列表不同的方法。这些概念都是Java面向对象编程中重要的概念,对理解和应用Java编程语言非常重要。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [头歌实践-Java继承多态](https://blog.csdn.net/weixin_53463734/article/details/121021181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [十三、 封装、继承多态](https://blog.csdn.net/CaesarQu/article/details/117373505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值