JAVA入门到精通-第13讲-抽象类-接口

幼儿园学习不好,小学学习不好;一般是这样;
 
 
 用抽象类来解决父类方法的不确定性;
 
 
   抽象方法不能在父类中实现;

 
  抽象类不能实例化;这样会报错;
  是不完整的一个类;
 
  
 
 

 
 
 
 接口也体现了一种多态;

 
 
 接口不能实例;

 抽象类中可以有实现了的方法;
 如果前面有abstract ,不可以实现;

 接口中的方法一个都不能实现;
 接口是更加抽象的抽象类;
 
 
 可以实现多个接口,Usb, Kkk 接口;
 
 
 接口中的a是静态的,通过接口的名字可以把它取出来;Usb.a

 
 一个接口可以继承别的接口;

 
 高内聚低耦合:很分散,你是你,我是我;
  

java面向对象编程(3)--抽象类

抽象类--解决之道

当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]

//抽象类的必要性[Demo124.java]

public class Demo124 {

    public static void main(String[] args) {

        //Animal an=new Animal();抽象类不允许实例化

        Animal an=new Cat();

        an.cry();

        an=new Dog();

        an.cry();

    }

}

//抽象类abstract关键词

abstract class Animal{

    String name;

    int age;

    //动物会叫,使用了abstract抽象方法

    abstract public void cry();//抽象类中可以没有abstract抽象方法

    //抽象类内可以有实现方法

    public void sx(){

        System.out.println("实现方法");

    }

}

//当一个子类继承的父类是abstract抽象类的话,需要程序员把抽象类的抽象方法全部实现。

class Cat extends Animal{

    //实现父类的cry,其实类似上节学习中的子类覆盖父类

    public void cry(){

        System.out.println("猫猫叫");

    }

}

class Dog extends Animal{

    //实现父类的cry,其实类似上节学习中的子类覆盖父类

    public void cry(){

        System.out.println("汪汪叫");

    }

}

 

抽象类--深入讨论

抽象类是java中一个比较重要的类。

1、用abstract关键字来修饰一个类时,这个类就是抽象类。

2、用abstract关键字来修饰一个方法时,这个方法就是抽象方法。

3abstract抽象类中的abstract抽象方法是不允许在抽象类中实现的,一旦实现就不是抽象方法和抽象类了。abstract抽象方法只能在子类中实现。

4、抽象类中可以拥有实现方法。

5、抽象方法在编程中用的不是很多,但是在公司笔试时,却是考官比较爱问的知识点。

 

抽象类--注意事项

1、抽象类不能被实例化

2、抽象类不一定要包含abstract方法。也就是说,抽象类可以没有abstract抽象方法。

3、一旦类包含了abstract抽象方法,则这个类必须声明为abstract抽象类。

4、抽象方法不能有主体。

    正确的抽象方法例:abstract void abc();

    错语的抽象方法例:abstract void abc(){}


 

java面向对象编程(3)--接口

接口--为什么有?

USB插槽就是现实中的接口。

什么是接口?

接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。

接口的建立语法:interface 接口名{方法;}

语法:class 类名 implements 接口{

       方法;

       变量;

    }

小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。

 

接口--注意事项

1、接口不能被实例化

2、接口中所有的方法都不能有主体。错误语法例:void aaa(){}(注意不能有花括号)

   接口可以看作更加抽象的抽象类。

3、一个类可以实现多个接口

4、接口中可以有变量[但变量不能用privateprotected修饰]

  a、接口中的变量,本质上都是static的而且是final类型的,不管你加不加static修饰

  b、在java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用

        访问形式:接口名.变量名

5、一个接口不能继承其它的类,但是可以继承别的接口

 

//接口的实现[Demo125.java]

//电脑,相机,u盘,手机

 

//usb接口

interface Usb{

    int a=1;//加不加static都是静态的,不能用privateprotected修饰

    //声明了两个方法

    public void start();//接口开始工作

    public void stop();//接口停止工作

}

//编写了一个相机类,并实现了usb接口

//一个重要的原则:当一个类实现了一个接口,要求该类把这个接口的所有方法全部实现

class Camera implements Usb{

    public void start(){

        System.out.println("我是相机,开始工作了..");

    }

    public void stop(){

        System.out.println("我是相机,停止工作了..");

    }

}

//接口继承别的接口

class Base{

}

interface Tt{

}

interface Son extends Tt{

}

//编写了一个手机,并实现了usb接口

class Phone implements Usb{

    public void start(){

        System.out.println("我是手机,开始工作了..");

    }

    public void stop(){

        System.out.println("我是手机,停止工作了..");

    }

}

//计算机

class Computer{

    //开始使用usb接口

    public void useUsb(Usb usb){

        usb.start();

        usb.stop();

    }

}

public class Demo125 {

    public static void main(String[] args) {

        System.out.println(Usb.a);

        //创建 Computer

        Computer computer=new Computer();

        //创建Camera

        Camera camera1=new Camera();

        //创建Phone

        Phone phone1=new Phone();

        computer.useUsb(camera1);

        computer.useUsb(phone1);

    }

}

 
接口可以这样使用;
 











原文地址:https://www.cnblogs.com/xuxaut-558/p/10044196.html