首页 > 编程语言 >JAVA中多态与super关键字

JAVA中多态与super关键字

时间:2024-12-17 23:53:25浏览次数:3  
标签:JAVA String 构造方法 多态 Vehicle 父类 super public name

多态
继承的表现就是多态,一个父类可以有多个子类,而在子类里可以重写父类的方法,每个子类重写的代码又不同,自然表现的形式就不一样
如果用父类的变量去引用不同的子类对象,在调用相同的方法的时候得到的结果就和表现形式就不一样了,这就是多态

super关键字
super(超类):用java术语来讲,被继承的类称为超类,继承的类称为子类
在某些时候子类需要调用父类的某些方法,这时候我们就需要用到super

super关键字和this作用类似,是被屏蔽的成员变量或者成员方法或变为可见,或者说用来引用被屏蔽的成员变量和成员方法,不过super是用在子类中,
目的是访问直接父类中被屏蔽的成员,注意是直接父类(就是类之上最近的超类)

car类:
package Myapp.day4;
/*
Car类
 */
public class Car extends Vehicle{
    //品牌
    private String brand;
    //颜色
    private String color;
    //车架号
    private String vin;
    //名字
    private String name;
    //能跑
    public void carRun(){
        System.out.println("car run run .....");
    }


    //构造方法,一定是没有返回值的

    //无参数的构造方法
    public Car(){
        super();    //调用父类的无参构造方法
        System.out.println("子类无参的构造方法");
    }
    //有参数的构造方法
    public Car (String name){
        super(name); //调用父类的有参构造方法
        this.name = name;
        System.out.println("子类有参的构造方法");
    }
    public void carrun(){
        System.out.println("car run run ......");
    }
     //重载构造方法
    public Car (String name,String color){
        this.name = name;
        this.color = color;

    }
}
Vehicle类:
package Myapp.day4;

/**
 * Vehicle 车辆类--具有car truck共有的属性和方法
 */
public class Vehicle {
    //品牌
    public String brand;
    //颜色
    public String color;
    //车架号
    public String vin;
    //名字
    public String name;
    public Vehicle(String name){
        this.name = name;
        System.out.println("父类有参数的构造方法");
    }

    public Vehicle(){
        System.out.println("父类无参数的构造方法");
    }
    //能跑
    public void carRun(){

        System.out.println("fathercar run run .....");
    }
}
Truck类
package Myapp.day4;

//Truck继承了Vehicle
/*
Truck类
 */
public class Truck extends Vehicle {

    //载重量
    private String load;


    //能载货
    public void canload(){

        System.out.println("truck can load.....");
    }

    //重写父类方法
    public void carRun(){

        System.out.println("truck run run......");
    }


    public static void main(String[] args){
        Truck truck = new Truck();
        truck.carRun();
        //调用父类的属性
        truck.brand = "BYD";
        System.out.println("品牌为"+truck.brand);
    }

}

执行main方法:

package Myapp.day4;

public class Test {
    public static void main(String[] args) {
        //多态的例子
        Vehicle v1 = new Vehicle();
        Vehicle v2 = new Car();
        Vehicle v3 = new Truck();
        v1.carRun();
        v2.carRun();
        v3.carRun();

//        //super的例子
//        Vehicle V2 = new Car();
//        Vehicle v3 = new Car("fengtian");
    }

}

 



标签:JAVA,String,构造方法,多态,Vehicle,父类,super,public,name
From: https://www.cnblogs.com/mhmh007/p/18613673

相关文章

  • Java基于springboot+vue的打印店预约及取件系统
    收藏关注不迷路!!......
  • Java基于springboot+vue的扶贫惠农推介系统
    收藏关注不迷路!!......
  • java 插入排序,原理、算法分析、实现细节、优缺点以及一些实际应用场景
    更多资源推荐:http://sj.ysok.net/jydoraemon提取码:JYAM实用优质资源/教程公众号【纪元A梦】 ###插入排序的详细解析探讨插入排序,包括其工作原理、算法分析、实现细节、优缺点以及一些实际应用场景。####1.基本概念插入排序是一种简单的排序算法,其核心思想是将数组分为已排......
  • 对javaweb的理解
    今天主要整理了一下javaweb的建立项目思路,在导入一个项目时,遇到了在jsp页面输入的非法字符,删除之后可以正常运行,应该是少了一些配置或者是tomcat不支持那样的字符,需要tomcat中配置一下,目前尝试网上的两种方法之后,tomcat不能启动了,还没找到解决方法。在另一个项目中,构建了许多的页......
  • Java 面试常见问题总结(2025 最新版)
    分析了几百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!目前已经是2025年最新版,针对今年的面试情况又做了完善和补充。涵盖了Java基础、集合框架、并发编程、JVM、操作系统、MySQL、Redis、ES、系统设计、分布式、高并发等知识点的面试题,全部都是面试常问的......
  • 从上千份大厂面经呕心沥血整理:大厂高频手撕面试题(数据结构篇 ,Java实现亲试可跑)
    怎么判断两个链表是否相交?怎么优化?判断两个链表是否相交可以采用多种方法。一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指向相同......
  • JavaSwing Dialog
    try{BeautyEyeLNFHelper.frameBorderStyle=BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;//UIManager.put("RootPane.setupButtonVisible",false);org.jb2011.lnf.beautyeye.BeautyEyeLNFHelpe......
  • javaweb不同角色登录到不同页面
    EmployeeService层:packagecom.comple.service;importcom.comple.entity.Employee;importjakarta.servlet.http.HttpSession;publicinterfaceEmployeeService{booleanauth(Stringusername,Stringpassword,HttpSessionsession);StringgetRole(Stringusernam......
  • Drag and Drop API 实现 JavaScript 中的原生拖放功能
    理解什么是拖放,我们先做个简单的实验。鼠标移动到页面左上角“CSDN”图片上方,点击左键不放开,拖动鼠标,发现图片随着鼠标移动,松开鼠标时,图片消失。一、拖放(DragandDrop)有什么作用?在JavaScript中,拖放(DragandDrop)是一种用户界面交互模式,允许用户通过鼠标选择、拖动和......
  • 【如何获取股票数据16】Python、Java等多种主流语言实例演示获取股票行情api接口之沪
    最近一两年内,股票量化分析逐渐成为热门话题。而从事这一领域工作的第一步,就是获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的主要任务是从这些数据中提炼出有价值的信......