抽象类and接口,多态

抽象类

抽象方法必须用abstract关键字进行修饰叫做抽象类。

如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

public abstract class Text01 {
    System.out.println("抽象类");

}

抽象类:

1,抽象类里面不是必须有抽象方法

2,一个类里面有抽象方法,这个类必须是抽象类

抽象类和普通类没什么区别

抽象方法:

1,方法只有声明没有方法体;     声明即规定方法的三要素:方法名,参数列表,返回值类型

2,要使用abstract关键字进行修饰

定义抽象方法的意义:

1,能够对子类进行约束:子类必须实现父类的抽象方法,或者子类声明为抽象类:

2,抽象类通过定义抽象方法就实现了一种规范,要求他的子类必须具备某种功能,具体如何实现以子类的具体实现为准

接口

接口是java语言中一种引用类型,是方法的集合,如果说类是内部封装了成员变量,构造方法和成员方法,那么接口主要是封装方法,包含抽象方法,默认方法和静态方法,私有方法。

接口的定义,它与定义类方式相似,但是使用implements关键字,它会被编译成.class文件,但一定明确它并不是类,二十另外一种引用数据类型。

他不能创建对象,但是可以被实现(implements,类似于被继承)。

public abstract USB{

        void  read();
        void  write();

    public default void run(){

        System.out.println("默认方法");//子类会被继承
    }
       
    public static void run1(){
        //静态方法    子类不会被继承,子类也无法调用
    }

    private void fun2(){
        //私有方法   子类不会被继承   jdk9可以用
    }
}

一个类只能继承一个抽象类,而一个类却可以实现多个接口。

多态

多态是继封装,继承之后,面向对象的第三大特征。

定义:是指同一行为,具有多个不同表现形式。(调用同样的方法,执行的是不同的功能)

1,发生再有继承或者实现接口的情况下

2,在子类中对方法进行了重写

3,父类引用指向子类对象     父类类型   变量名=new  子类对象();

   public class MultiDemo {
       public static void main(String[] args) {
           // 多态的引用,就是向上转型
           Animals dog = new Dog();
           dog.eat();
           
           Animals cat = new Cat();
           cat.eat();
           
           // 如果要调用父类中没有的方法,则要向下转型
           Dog dogDown = (Dog)dog;
           dogDown.watchDoor();
   
       }
   }
   class Animals {
       public void eat(){
           System.out.println("动物吃饭!");
       }
   }
   class Dog extends Animals{
       public void eat(){
           System.out.println("狗在吃骨头!");
       }
       public void watchDoor(){
           System.out.println("狗看门!");
       }
   }
   class Cat extends Animals{
       public void eat(){
           System.out.println("猫在吃鱼!");
       }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值