OJ题[选择题] -- "关于抽象类"相关总结

本文总结了关于Java中抽象类的关键点,包括抽象类不能被实例化,可以有构造器和普通方法,抽象方法不能被static或final修饰等。并提供了一个例子,展示如何创建一个包含抽象方法的动物类,以及人类、狗类和猫类作为其子类,分别实现不同的行为。
摘要由CSDN通过智能技术生成

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。

 

总结:

1.抽象类不可以被实例化 (实例化:用类创建对象的过程。)

2.抽象类可以有构造器(构造方法)

3.抽象类里面可以有普通方法

4.抽象类可以全部都是普通方法

5.抽象类不可以被private修饰. 因为抽象类就是为了被继承的子类实现的,private后就没有意义了

抽象类可以用 public, protected, default修饰

6.抽象方法不可以被static关键字修饰, 因为静态方法无法被重写

7.抽象方法不能被final关键字修饰,因为final修饰过的类不能被重写

8.抽象类不可以被synchronized修饰,和线程无关,因为抽象方法不涉及实现细节

9.一个子类只能继承一个抽象类,因为java是单继承, 抽象类也是类, 抽象类没有方法体,.

10.抽象类没有方法体: 它的子类必须实现这些方法

例如:如果一个抽象的动物类,规定了吃喝这两个方法,那么子类人就必须去实现

11.抽象方法不能同时是本地方法

一个抽象类的例子:

写一个动物的抽象类,有吃和喝两种抽象方法,再写三个类继承动物类

分别是人类,狗类,猫类,

人增加一个哭的方法,

狗增加一个看门的方法,

猫增加一个捋毛的方法

import java.util.*;

abstract class Animal{
    abstract void eat();
    abstract void drink();
}
class Person extends Animal{
    public void eat(){
        System.out.println("Person eat...");
    }
    public void drink(){
        System.out.println("Person drink...");
    }
    public void cry(){
        System.out.println("Person cry");
    }
}
class Dog extends Animal{
    public void eat(){
        System.out.println("Dog eat...");
    }
    public void drink(){
        System.out.println("Dog drink...");
    }
    public void guardTheHouse(){
        System.out.println("Dog guardTheHouse");
    }
}
class Cat extends Animal{
    public void eat(){
        System.out.println("Cat eat...");
    }
    public void drink(){
        System.out.println("Cat drink...");
    }
    public void cleanUpFur(){
        System.out.println("Cat cleanUpFur");
    }
}
public class Main11 {
    public static void main(String[] args) {
        Person p = new Person();
        Dog d = new Dog();
        Cat c = new Cat();

        p.eat();
        p.drink();
        p.cry();

        c.eat();
        c.drink();
        c.cleanUpFur();

        d.eat();
        d.drink();
        d.guardTheHouse();

    }
}

运行结果:

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值