• 抽象类


    package java_test;
    /*
    abstract:是一个修饰符,可以修饰方法,类
    1.当我们多个类存在相同的功能,但是功能的主体(方法体)不同,这是我们进行向上抽取只抽取功能的定义不抽取功能的主体
    抽象类的特点:
    1.抽象方法一定要在抽象类中
    2.抽象类和抽象方法必须要被abstract关键词修饰
    3.抽象的类是不能被创建对象的,因为调用抽象的方法没有意义
    4.要使用抽象类中的方法,要继承抽象类,并且重写抽象方法,然后创建子类对象来调用
    5.抽象类中可以定义非抽象的方法,有时我们需要此类不能被new关键字创建对象时,可以用abscract将此类变成抽象类
    6.子类如果只重写父类一部分抽象方法,那么该子类也成为了一个抽象类,如果抽象类的抽象方法要被使用,子类必须重写所有抽象方法
    值得注意:抽象类和普通类没有太大的不同
    1.抽象类无法通过new关键字创建对象
    2.抽象类里面可以有非抽象的方法
     */
    
    /*
     抽象类中抽象方法可有可无,但通常都含有抽象方法(这是定义抽象类的目的所在)让子类继承;
     如果子类没有把抽象类中所有的抽象方法都重写,则这个继承了抽象类的子类也会成为抽象类;
     如果子类把抽象类中所有的抽象方法都重写,则这个子类就可以实例化了。
     */
    
    abstract class Animals{//抽象类 可以有对象,只是不能通过 new来创建对象
    	abstract void sing();//抽象方法  只抽取方法名称,不抽取方法主体
    	abstract void show();
    }
    
    class Cats extends Animals{
    	void sing(){
    		System.out.println("喵喵的唱歌");
    	}
    	void show(){
    
    	}
    
    }
    
    class Dog  {//这里dog类没有继承Animals类,如果继承了抽象类Animals,还需要重写抽象方法,Cats类重写了Animals类的所有抽象方法
    	void sing(){
    		System.out.println("汪汪的唱歌");
    	}
    }
    public class DM001 {
    	public static void main(String[] args) {
    
    	}
    }
    

      

  • 相关阅读:
    如何用密码保护共享文件?
    如何让光驱自动弹出和关闭?
    欢迎参加“诊断 Windows 7 启动及登录缓慢问题”在线技术会议
    谁偷走了我的系统资源?
    修改Windows验证的登陆框为页面
    使用Fiddler提高前端工作效率
    对非管理员隐藏Site Actions的菜单
    C#多线程参数传递
    转:管理网站集所使用的内容数据库
    转:十步骤让你轻松提升SharePoint性能
  • 原文地址:https://www.cnblogs.com/youning/p/6810460.html
Copyright © 2020-2023  润新知