面向对象(三)

目录

前言

一、知识点

1.封装

2.继承

(一)方法的重写(Override)

(二)super关键字

3.抽象类(abstract)


前言

提示:本文是关于介绍封装,继承(方法的重写与super关键字),抽象类


提示:以下是本篇文章正文内容,下面案例可供参考

一、知识点

1.封装

封装是将数据(属性)和操作数据的方法(函数)捆绑在一起,形成一种对外界不可见的黑盒模型。封装是通过定义类(class)来实现的,其中包含私有(private)字段(属性)和公共(public)方法(行为)。

通俗理解封装,可以想象一下我们日常生活中的胶囊,胶囊将药物封装起来,我们看不到里面的成份,只能通过外部提供的说明书来了解如何使用它。封装意味着不需要知道一个对象内部是如何工作的,只需要知道如何使用它。

代码如下(示例):

public class New {
private String name;
 private int score;

    public New(String name, int score) {
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScore() {
        return score;
    }

   

2.继承

在Java中,继承是一个非常核心的概念,它允许我们定义一个类(子类)来继承另一个类(父类)的属性和方法。

想象一下我们有一个" 水果 "类,它有一些属性(比如颜色,重量)和方法(比如被吃掉,腐烂)。现在,我们要创建一个更具体的类,比如“苹果”,除了水果自己的特性外还有一些自己的特性(比如品种)。这种情况下苹果就可以继承水果的所有属性和方法,同时还可以添加自己的属性和方法。

//父类
class Fruit{
String color;
int weight;

void beeaten(){
System.out.println("水果被吃掉了");
    }
}
//子类
class Apple extends Fruit{
String variety;

void makejuice(){
System.out.println("用这个苹果榨汁");
    }
}

注意事项:

子类会继承父类所有的实例变量和实例方法

子类不能直接访问父类中私有的成员变量和方法

在Java中,继承的关键字用的是“extends”,表示子类对父类的扩展

Java支持多层继承

一个父类可以同时拥有多个子类

Java只支持单继承,不支持多重继承

(一)方法的重写(Override)

当父类的方法不能满足子类的需求,它允许子类提供特定的实现来覆盖父类的方法。

//父类
class Vehicle{
void move(){
System.out.println("开始运行");
    }
}

//子类
class Car  extends Vehicle{
@Override
void move(){
System.out.println("点火,挂挡,踩油门,开始运行");
    }
}

注意:构造方法,静态方法不能重写,成员变量不存在重写

(二)super关键字

引用当前对象的父类,访问父类的属性和方法。

class Animal{
String sound ="未知声音";
void makesound(){
System.out.println("动物发出声音"+sound);
    }
}
class Dog extends Animal {
String sound ="汪汪";
@Override
void makesound(){
super.makesound();
System.out.println("狗发出声音"+sound);
    } 
}

1.子类继承父类时,不会继承父类的构造方法。只能通过“super”来调用父类指定的构造方法。

2.规定super(形参列表),必须声明在构造器的首行。

3.抽象类(abstract)

只有声明没有具体的实现。必须用abstract关键字来修饰。

代码如下(示例):

//抽象类:动物
abstract class Animal{
    String name;
    int age;

    void eat(){
System.out.println("动物吃东西");
}

//抽象方法:发出声音
abstract void makesound(){

}
//具体类:狗
class Dog extends Animal{
    @Override
    void makesound(){
        System.out.println("狗发出声音");
   }
}

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值