当前位置: 首页 > article >正文

Java:继承和多态(1)

在 Java SE 中,继承多态是面向对象编程(OOP)的两个核心概念。通过继承,子类可以复用父类的代码;而通过多态,子类可以在不修改父类的前提下定义自己的行为。这两者结合起来使得代码更具扩展性、灵活性和可维护性。

一 继承(Inheritance)

1.继承的概念:

继承是一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以获得父类的非私有成员(包括属性和方法),并可以扩展或重写父类的功能。

2.继承的基本语法

继承通过 extends 关键字来实现。

public class Dog extends Animal {
    public void bark(){
        System.out.println("正在汪汪叫");
    }
}
public class Derievd extends Base {
    public int c=3;
    public int a=100;
特点
  • 子类继承了父类的属性和方法。Dog 类可以使用 Animal 类中的 name 属性和 eat() 方法。
  • 子类可以扩展自己的方法,如 bark() 方法。
  • Java 中类的继承是单继承,即一个子类只能继承一个父类。

3.子类中访问父类的成员变量

3.1子类和父类不存在同名成员变量 
public class Animal {
    public String name;
    public int age;

    public void eat(){
        System.out.println(this.name+"正在吃东西");
    }
}
public class Cat extends Animal{
    public void mimi(){
        System.out.println("正在喵喵叫");
    }
}
public class Dog extends Animal {
    public void bark(){
        System.out.println("正在汪汪叫");
    }
}
public class TEST2 {
    public static void main(String[] args) {
        Dog dog=new Dog();
        dog.name="小白";
        dog.age=2;
        dog.eat();
        dog.bark();

        System.out.println("--------");

        Cat cat=new Cat();
        cat.name="小黑";
        cat.age=12;
        cat.mimi();
        cat.eat();
    }
}
3.2子类和父类存在同名成员变量  
public class Base {
    public int a=1;
    public int b=2;
}
public class Derievd extends Base {
    public int c=3;
    public int a=100;

    public void fun(){
        System.out.println("父类的a"+super.a);
        System.out.println(this.a);
        System.out.println(this.b);
        System.out.println("父类的b"+super.b);
        Base base=new Base();
        System.out.println(base.b);
        System.out.println(this.c);
    }
}
public class TEST2 {
    public static void main(String[] args) {
        Derievd derievd=new Derievd();
        derievd.fun();
    }
}

希望能对大家有所帮助!!!!

 

 

 


http://www.kler.cn/a/300420.html

相关文章:

  • 2024人工智能AI+制造业应用落地研究报告汇总PDF洞察(附原数据表)
  • Linux 使用 GDB 进行调试的常用命令与技巧
  • PHP:从入门到进阶的全方位指南
  • 力扣动态规划-5【算法学习day.99】
  • nginx实现TCP反向代理
  • JWT在线解密/JWT在线解码 - 加菲工具
  • 在 Ubuntu 下通过 Docker 部署 Misskey 服务器
  • 视频推拉流/直播点播EasyDSS平台安装失败并报错“install mediaserver error”是什么原因?
  • C#使用TCP-S7协议读写西门子PLC(二)
  • C#中的类
  • 力扣sql五十题——连接
  • 银河麒麟国产化系统(或者是Linux)一键安装docker和docker-compose
  • C++ 封装 DLL 供 Unity 调用
  • 开源Devops工具-Ansible
  • 浅谈C#之任务调度TaskScheduler
  • Java | Leetcode Java题解之第398题随机数索引
  • 每日OJ_牛客_合唱团(打家劫舍dp)
  • FFmpeg安装与使用教程
  • html+css网页设计 旅游 雪花旅行社5个页面
  • 使用您自己的图像微调 FLUX.1 LORA 并使用 Azure 机器学习进行部署
  • C# WPF中的GUI多线程技巧详解
  • 15_分布式数据结构
  • 2. 变量和指令(omron 机器自动化控制器)——1
  • DC-DC电源集成系统测试柜如何检测电源模块?
  • Python 数据分析与可视化
  • 通过IDEA的Maven插件清理maven依赖缓冲