抽象类


package son;
 
public abstract class Mannal {
    
    
    public Mannal (int age ) {
        
    }
    public void eat () {
        
    }
    public abstract void move();
}
 
 
 
public class Whale extends Mannal {
    public void move() {
        System.out.println("靠耆游泳");
    }
}
 
package son;
 
public class Test {
    public static void main(String[] args) {
        Mannal mannal =new Whale();//上转型
        mannal.move();
    }
}
//为什么需要抽象类?:在多态的前提下,父类的方法体,永远不会被执行
//抽象类 是什么?:没有方法体的方法叫做抽象方法,用abstract修饰
//有什么特点?:
//1.有抽象方法,用abstract修饰
//2.抽象类中可以没有抽象方法
//3.抽象类不能创建对象;像这样:Mannal ma=new Mannal();会报错
//4.抽象类中的抽象方法必须由子类实现;子类如果没有实现抽象方法或者没有实现父类的所有抽象方法,此时,子类必须为抽象类
//5.抽象类中可以有具体的方法
//6.抽象类可以定义构造方法,方法由子类调用
//7.抽象类不能由final 修饰,被final修饰的类没有子类,此时抽象类,没有子类,其中的方法不能被调用,此时,抽象类也就没有意义了!
抽象类与接口区别

//抽象类 接口
1、定义:抽象类 abstract 接口interface
2、构造方法:抽象类有构造方法 接口没有构造方法
3、继承:抽象类只能单继承 接口可以继承多个接口
4、实现:抽象类型extends 接口implements
5、成员变量:抽象类可以定义任何合法的成员变量 接口只能定义public static final的变量即常量
6、方法:抽象类可以定义任意合法方法; 接口中只能定义抽象方法,JDK8.0+可以定义多个static或default修饰的具体方法
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值