继承、继承中的重写

[修饰符] class 子类名 extends 父类名 {

类体

}

例1:

复制代码
public class Bird{//父类
    String color="white";
    String skin="羽毛";
}
public class Pigeon extends Bird{//子类
    public static void main(String[] args) {
        Pigeon pigeon=new Pigeon();//建立类的对象
        System.out.println(pigeon.color);//输出对象属性color
    }
}
复制代码

例2

     

复制代码
import java.util.Date;

public class Employee {
private String name;//定义成员变量
private double salary;
private Date birthday;
public String getName() {//获取成员变量
    return name;
}
public void setName(String name) {//设置成员变量
    this.name=name;
}
public double getSalary() {
    return salary;
}
public void setSalary(double salary){
    this.salary=salary;
}
public Date getBirthday() {
    return birthday;
}
public void setBirthday(Date birthday) {
    this.birthday=birthday;
}
}
复制代码
复制代码
public class Manager extends Employee {//继承,简化代码
private double bonus;//定义变量,奖金
public double getBonus() {//获取成员变量
    return bonus;
}
public void setBonus(double bonus) {//设置成员变量
    this.bonus=bonus;
}
}
复制代码
复制代码
import java.util.Date;
public class Test {
public static void main(String[] args) {
    Employee e=new Employee();//创建Employee对象,并赋值
    e.setName("Java");//赋值成员变量
    e.setSalary(2000);
    e.setBirthday(new Date());
    Manager m=new Manager();//创建Manager对象,并赋值
    m.setName("阿伟");//调用父类方法
    m.setSalary(5000);
    m.setBirthday(new Date());
    m.setBonus(2000);
    //输出经理和员工属性值
    System.out.println("员工的姓名、工资、生日:"+"\n"+e.getName()+"\n"+e.getSalary()+"\n"+e.getBirthday());
    System.out.println("经理的姓名、工资、生日:"+"\n"+m.getName()+"\n"+m.getSalary()+"\n"+m.getBirthday());
    System.out.println("经理的奖金:"+m.getBonus());
}
}
复制代码

继承中的重写

子类中的方法名与父类中的相同时,不继承父类方法,执行子类方法。重写也称为覆盖。

例:父类Animal,子类Cat、Dog、Sheep,执行文件Zoo

Dog类和Cat类都重写了父类的方法cry( ),执行子类方法。但Sheep类没有重写父类方法,所以执行父类方法。

      

复制代码
public class Animal {
public void cry() {
    System.out.println("动物的叫声");
}
}

public class Dog  extends Animal{
public void cry() {
    System.out.println("狗的叫声“汪汪……”");
}
}

public class Cat extends Animal{
    public void cry() {
        System.out.println("猫的叫声“喵喵……”");
    }
}

public class Sheep  extends Animal{
}

public class Zoo {
    public static void main(String[] args) {
        Dog dog=new Dog();//建立对象
        Cat cat=new Cat();//建立对象
        Sheep sheep=new Sheep();//建立对象
        dog.cry();
        cat.cry();
        sheep.cry();
    }
}
复制代码

 

posted @   夕西行  阅读(238)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
历史上的今天:
2017-01-12 Ubuntu创建、删除文件与目录
点击右上角即可分享
微信分享提示