2023/5/29总结

abstract修饰符

抽象类就是当类和类之间有相同特征时,将这些共同的特征提取出来,形成的就是抽象类。

抽象类的特点:

  • 抽象类和抽象方法必须使用abstract 关键字修饰:publicabstract class 类名 / public abstract void eat();
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 抽象类不能实例化
    那么抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态
  • 抽象类的子类
    要么重写抽象类中的所有抽象方法
    要么是抽象类

例如:

//抽象类Animal,父类
abstract class Animal {
   
}
//抽象类Bird,子类
abstract class Bird extends Animal {

}
//非抽象类:Cat,子类
class Cat extends Animal {
    
}
  •  抽象类就是用来被继承的,子类可以是抽象类,也可以是非抽象类。
  • 非抽象子类继承了抽象父类,必须重写父类的抽象方法,可以有自己的方法,但不能是抽象方法;
  • 抽象子类继承了抽象父类,不需要重写父类的抽象方法,可以有自己的方法,但必须是抽象方法;

抽象类的成员特点:

  • 成员变量:
    可以是变量也可以是常量
  • 构造方法:
    有构造方法,但是不能实例化
    构造方法的作用是用于子类访问父类数据的初始化
  • 成员方法:
    可以有抽象方法:限定子类必须完成某些动作
    也可以有非抽象方法:提高代码复用性

子类调用父类构造方法:

//抽象类Animal,父类
abstract class Animal {
    public Animal() {

    }
}
//抽象类Bird,子类
abstract class Bird extends Animal {
    public Bird() {
        super();
    }
}
//非抽象类:Cat,子类
class Cat extends Animal {
    public Cat() {
        super();
    }


 接口

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用Java中的接口更多的体现在对行为的抽象

 

 

 接口与抽象类的代码案例示例:

//Person
package Sport;

public abstract class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

//Sporter
package Sport;

public abstract class Sporter extends Person{

    public Sporter() {
    }

    public Sporter(String name, int age) {
        super(name, age);
    }

    public abstract void study();

}

//Coach
package Sport;

public abstract class Coach extends Person{
    public Coach() {
    }

    public Coach(String name, int age) {
        super(name, age);
    }

    public abstract void teach();
}

//English
package Sport;

public interface English {

    public abstract void SpeakEnglish();

}

//PingPongSporter
package Sport;

public class PingPongCoach extends Coach implements English{
    public PingPongCoach() {
    }

    public PingPongCoach(String name, int age) {
        super(name, age);
    }

    @Override
    public void teach() {
        System.out.println("乒乓球教练交乒乓球");
    }

    @Override
    public void SpeakEnglish() {
        System.out.println("乒乓球教练说英语");

    }
}

//PingPongCoach
package Sport;

public class PingPongCoach extends Coach implements English{
    public PingPongCoach() {
    }

    public PingPongCoach(String name, int age) {
        super(name, age);
    }

    @Override
    public void teach() {
        System.out.println("乒乓球教练交乒乓球");
    }

    @Override
    public void SpeakEnglish() {
        System.out.println("乒乓球教练说英语");

    }
}

//BasketBallCoach
package Sport;

public class BasketBallCoach extends Coach{
    public BasketBallCoach() {
    }

    public BasketBallCoach(String name, int age) {
        super(name, age);
    }

    @Override
    public void teach() {
        System.out.println("篮球教练教篮球");
    }
}

//BasketBallSporter
package Sport;

public class BasketBallSporter extends Sporter{
    public BasketBallSporter() {
    }

    public BasketBallSporter(String name, int age) {
        super(name, age);
    }

    @Override
    public void study() {
        System.out.println("篮球运动员学篮球");
    }
}

//SportDemo
package Sport;

public class SportDemo {
    public static void main(String[] args) {
        PingPongSporter pps=new PingPongSporter("刘星",23);
        System.out.println(pps.getName()+","+pps.getAge());
        pps.study();
        pps.SpeakEnglish();

        BasketBallSporter bbs=new BasketBallSporter();
        bbs.setName("乔丹");
        bbs.setAge(25);
        System.out.println(bbs.getName()+","+bbs.getAge());
        bbs.study();
    }
}


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在使用git提交代码到服务器上时,如果遇到"git did not exit cleanly (exit code 128)"的提示,这表示git操作没有正常退出,并返回了一个退出码128。这通常是由于一些错误或冲突导致的。这个错误信息给出了具体的时间戳和日期,这是git操作发生错误的时刻。但是根据提供的信息,无法确定具体的错误原因。要解决这个问题,你可以尝试以下几个方法: 1. 首先,检查你的网络连接。确保你的网络连接稳定,并且没有任何中断或问题。 2. 检查你的git配置和权限。确保你有足够的权限执行git操作,并且你的git配置正确。 3. 如果你在进行提交之前进行了其他操作,比如合并分支或解决冲突,那么你可能需要解决这些冲突或完成其他操作后再次尝试提交。 4. 如果以上方法都没有解决问题,那么你可以尝试删除本地仓库并重新克隆一份代码。这将会清除任何可能导致问题的本地配置或文件。 总结来说,"git did not exit cleanly (exit code 128)"错误通常是由于网络问题、配置问题或操作冲突导致的。你可以尝试检查网络连接、git配置和权限,解决冲突或重新克隆代码来解决这个问题。<span class="em">1</span> #### 引用[.reference_title] - *1* [解决git did not exit cleanly (exit code 128)](https://blog.csdn.net/weixin_53032617/article/details/129623746)[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_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值