zoukankan      html  css  js  c++  java
  • Java面向对象(二)

    面向对象编程(二)

    对象的转型分 向上转型 和 向下转型(强制类型转换)

    向上转型:父类的引用指向子类的对象,但是不能使用子类多出来的方法。

    如:

     public class Test{
    
           public static void main(String args[]){
    
                  Person p = new Person();
    
                  p.playWithAnimal(new Dog());
    
                  }
    
           }
    
          
    
    class Animal{
    
           String furColor;
    
          
    
    public void ecstasy(){
    
             System.out.println("------ecstasy-------");
    
             }
    
    public void sleep(){
    
             System.out.println("------sleeping-----------");
    
             }
    
           }
    
          
    
    class Dog extends Animal{
    
           String furColor;
    
           }
    
          
    
    class Cat extends Animal{
    
           String furColor;
    
           }
    
          
    
    class Person{
    
           public void playWithAnimal(Animal a){
    
                  a.ecstasy();
    
                  }
    
           }

    向下转型 如: 

    Animal a = new Cat();
    Cat c = (Cat)a;

    抽象类:用来被继承,又不需要创建这个类的对象的类。创建抽象类使用abstract关键字。

    abstract关键字可加在类前还可以加在方法前面,那么该方法称为抽象方法(用来被子类重写,不能有方法体)

    下面是抽象类和抽象方法的实例:

    public class Test{
    
           public static void main(String args[]){
    
                  Cat c = new Cat();
    
                  c.sleep();
    
                  }
    
           }
    
          
    
    abstract class Animal{
    
           String furColor;
    
          
    
    public void ecstasy(){
    
             System.out.println("------ecstasy-------");
    
             }
    
    public abstract void sleep();
    
    }
    
          
    
    class Dog extends Animal{
    
           String furColor;
    
          
    
           public void sleep(){
    
                  System.out.println("Dog is sleeping");
    
                  }
    
           }
    
          
    
    class Cat extends Animal{
    
           String furColor;
    
           public void sleep(){
    
                  System.out.println("Cat is sleeping");
    
                  }
    
           }
    
     

    具有抽象方法的类一定是抽象类;抽象类既可以有抽象方法和又可以有非抽象方法

    常量:final关键字加在变量前面,该变量变为常量,在定义常量的时候一定要初始化值

    接口(interface)(标准、规范)特殊的抽象类,只能有抽象的方法和常量

    类可以实现接口 class XXX implements XXX{} ,类实现接口必须遵循其所有方法;

    多实现:一个类可以实现多个接口(区别继承,只能单继承)
    接口之间是继承关系。

  • 相关阅读:
    【转】设计模式总结
    【转】并行开发
    C#开发微信公众平台-就这么简单
    (转载)MVC,MVP 和 MVVM 的图示
    插入排序
    选择排序
    VS发布 错误 未能将文件 复制到
    SqlServer 更改数据库名称
    linq查询时查询语句中附带多个查询时“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”
    不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关)
  • 原文地址:https://www.cnblogs.com/lyq2012/p/2802010.html
Copyright © 2011-2022 走看看