zoukankan      html  css  js  c++  java
  • 第十周总结 抽象类和接口

    abstact抽象的----(很不具体 没有具体的执行 只是个概念)
    1.可以修饰什么
    修饰方法
    用abstract修饰符修饰的方法 只有方法的结构 没有方法执行体叫做抽象方法
    当然注意native修饰的方法虽然也没有方法体 但不是抽象方法 只是执行的过程是其他语言写的 看不到
    修饰类
    用abstract修饰符修饰的类 叫做抽象类
    抽象类不能直接做事,只能通过子类单继承来做事
    2.类和类的关系
    抽象类----直接单继承----抽象类 可以
    抽象类----直接单继承----具体类 可以(用法通常不会出现)
    具体类----直接单继承----抽象类 不可以(将父类的抽象方法具体化 或子类也变成抽象类
    3.小问题
    抽象类中能不能没有抽象方法 全是具体成员 可以
    抽象类中能不能没有具体成员 全是抽象方法 可以--->抽象类抽象到极致 质的变化---->接口
    接口可以理解为是抽象类抽象到极致--->依然还是一个类的结构 但不能用class修饰 改用interface修饰

    什么是接口(通常是为了定义规则)
    接口也是一个类的结构 只不过 用interface修饰 替换原有的class
    1.有什么 成员
    属性 不能含有一般属性 只能含有公有的静态的常量 Public static final
    方法 不能含有一般方法 只能含有公有的抽象的方法(1.8 defualt修饰具体方法)
    块 不能含有一般程序块 也不能含有static块(块本身就是具体的 接口中不让有具体成员)
    构造方法 不能含有构造方法
    2.如何使用 创建对象
    不能创建对象
    只能通过子类多实现(implements)来做事
    public class A implements B,C,D{}
    3.与别的类结构关系
    接口不能继承别的类 最抽象
    抽象类----直接多实现----接口 可以
    具体类----直接多实现----接口 不可以(必须将接口中的抽象方法具体化 或者 具体类转化为抽象类)
    *接口-----多继承-------接口 可以直接多实现

    实例一:动物声音模拟器

    package java期末测试题第八题;
    public interface Animal {
    	public abstract void cry();
    	public abstract String getAnimalName();
    
    }
    
    package java期末测试题第八题;
    public  class Simulator {
    	public void playsound(Animal animal){
    		System.out.print(animal.getAnimalName()+"类声音:");
    		animal.cry();
    	}
    }
    
    package java期末测试题第八题;
    public class Cat implements Animal{
    //具体类是不能直接多实现接口的   所以必须将接口中的抽象方法具体化或者 具体类转化为抽象类
    	public void cry(){
    		System.out.println("小猫喵喵叫");
    	}
    
    	public String getAnimalName() {
    		return "猫";
    	}
    }
    
    package java期末测试题第八题;
    public class Dog implements Animal{
    	public void cry() {
    		System.out.println("小狗汪汪叫");
    	}
    
    	public String getAnimalName() {
    		return "狗";
    	}
    }
    
    package java期末测试题第八题;
    public class Test8 extends Simulator {
    		public static void main(String[] args) {
    			Simulator animal=new Simulator();
    			animal.playsound(new Dog());
    			animal.playsound(new Cat());
    		} 
    	}
    
  • 相关阅读:
    [Selenium+Java] Upload Selenium Script to GitHub
    [Selenium+Java] Apache ANT with Selenium: Complete Tutorial
    [Selenium+Java] Selenium Core Extensions (User-Extensions.js)
    序列流、对象操作流、打印流、标准输入输出流、随机访问流、数据输入输出流、Properties(二十二)
    FileReader、 FileWriter、readLine()和newLine()、LineNumberReader(二十一)
    图片加密解密小知识
    道德经--老子
    IO、FileInputStream、(二十)
    异常、Throwable、finally、File类(十九)
    Collections工具类、Map集合、HashMap、Hashtable(十八)
  • 原文地址:https://www.cnblogs.com/shsy/p/12017082.html
Copyright © 2011-2022 走看看