黑马程序员——抽象类能否继承普通类与接口能否继承普通类

本文介绍了Java中的抽象类和抽象方法,强调抽象类不能被实例化且子类必须实现所有抽象方法。探讨了抽象类可以继承普通类,但接口不能继承普通类的规则,并通过代码示例进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- android培训java培训、期待与您交流! ----------
什么是抽象类?
     1、抽象方法和抽象类用关键字 abstract 表示。
     2、 有抽象方法的类一定是抽象类 ( 或者接口 ) 。抽象类中不一定有抽象方法。
     3、 抽象类不能被实例化。 //因为被实例化后根本不知到他具体代表的谁
     4、如果一个类继承抽象类,那么 这个类要么本身也是抽象类。 这个类 必须 重写父类的所有抽象方法。
1、抽象方法
     只有方法声明,没有方法体的方法称为抽象方法,该方法被abstract修饰

2、抽象类
      如果一个类中含有抽象方法,这个类就可以被称为 抽象类。该类也需要被 abstract 修饰

3、什么时候定义抽象类
     如果一个方法我们不确定他要做什么,就把这个方法定义成抽象的,那么这个类就必须被定义成抽象的

抽象类的抽象方法
3、格式
          定义抽象类的格式
               abstract class Animal{
                    abstract void eat();
                    public void run(){
                         System.out.println("我在跑步");
                    }
               }     
          使用格式1 
               定义个普通类,继承抽象类,必须实现抽象类中的抽象方法
               class Dog extends Animal{
                    void eat(){
                          System.out.println("狗吃骨头");
                    }
               }
           使用格式2
               定义一个抽象类继承抽象类,不是必须要实现父类的抽象方法
               abstract class Cat extends Animal{
               }

------------------------ -抽象类能否继承普通类与接口能否继承普通类-------------
//抽象类继承普通类
abstract class Teacher21 extends Person{
	public abstract void show();
}


class Person{
	int age =22;
	public void say(){
		System.out.println("person");
	}
}
class Student extends Teacher21{
	@Override
	public void show() {
		System.out.println("继承于Teacher21");	
	}
	
}
public class TestAbstract {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student s = new Student();
		s.show();
		s.say();
	}
}
结果:
继承于Teacher21
person
结论:抽象类能继承普通类,接口不能继承普通类


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值