zoukankan      html  css  js  c++  java
  • java接口和多态总结

    多态总结

    1. 多态的三种形式:父类为正常类、父类为抽象类、接口。
    2. 强制类型转换,才能访问子类的私有方法和属性,否则多态只能访问子父类的共同方法,子类的实现。

    代码如下:

    父类

    package org.junit.duotai;
    
    public class Animal {
    	public void eat() {
    		System.out.println("父类方法eat");
    	}
    }
    

    子类

    package org.junit.duotai;
    
    public class Cat extends Animal{
    	String color = "yellow";
    	public void eat() {
    		System.out.println("猫吃猫粮");
    	}
    }
    

    子类

    package org.junit.duotai;
    
    public class Dog extends Animal{
    	public void eat() {
    		System.out.println("狗吃狗粮");
    	}
    	public void watchHome() {
    		System.out.println("狗看家");
    	}
    }
    

    测试方法

    package org.junit.duotai;
    
    public class TestDemo {
    	public static void main(String[] args) {
    		// 自动转换
    		Animal a1 = new Cat();
    		Animal a2 = new Dog();
    		
    		a1.eat();
    		a2.eat();
    		
    		// 强制类型转换,访问子类的属性和方法
    		Cat b1 = (Cat)a1;
    		System.out.println(b1.color);
    		
    		Dog b2 = (Dog)a2;
    		b2.watchHome();
    	}
    
    }
    

    打印输出

    猫吃猫粮
    狗吃狗粮
    yellow
    狗看家
    

    接口:理解为是一个特殊的抽象类,但它不是类,是一个接口

    接口的特点:

    1. 定义一个接口用interface关键字
      interface Inter{}
    2. 一个类实现一个接口,实现implements关键字
      class Demo implements Inter{}
    3. 接口不能直接创建对象
      通过多态的方式,由子类来创建对象,接口多态

    接口中的成员特点:

    成员变量:

    • 只能是final 修饰的常量
    • 默认修饰符: public static final

    构造方法:

    成员方法:

    • 只能是抽象方法
    • 默认修饰符: public abstract

    类与类,类与接口,接口与接口之间的关系

    • 类与类之间:继承关系,单继承,可以是多层继承
    • 类与接口之间: 实现关系,单实现,也可以多实现
    • 接口与接口之间:继承关系,单继承,也可以是多继承
    • Java中的类可以继承一个父类的同时,实现多个接口

    多态:理解为同一种物质的多种形态

    多态使用的前提:

    		1,有继承或者实现关系
    
    		2,要方法重写
    
    		3,父类引用指向子类对象
    

    多态的成员访问特点:

    		方法的运行看右边,其他都看左边
    

    多态的好处:

    		提高了程序的扩展性
    

    多态的弊端:

    		不能访问子类的特有功能
    

    多态的分类

    类的多态

    abstract class Fu {
    
             public abstract void method();
    
    }
    
    class Zi extends Fu {
    
    public void method(){
    
    		       System.out.println(“重写父类抽象方法”);
    
    }
    
    }
    
    //类的多态使用
    
    Fu fu= new Zi();
    
    

    接口的多态

    interface Fu {
    
    	public abstract void method();
    
    }
    
    class Zi implements Fu {
    
    	public void method(){
    
        System.out.println(“重写接口抽象方法”);
    
    }
    
    }
    
    //接口的多态使用
    
    Fu fu = new Zi();
    
    

    instanceof 关键字

    	格式: 对象名 instanceof 类名
    
    	返回值: true, false
    
    	作用: 判断指定的对象 是否为 给定类创建的对象
    记得旧文章 便是新举子
  • 相关阅读:
    sphinx实时索引和高亮显示
    打开页面就进行下载的一种方法
    mysql开启慢查询日志以及查看(转载自网络)
    Best MVC Practices(最优的MVC布局)
    nginx虚拟机配置(支持php)
    一个简单大方的赞后+1,踩后-1js动画效果
    如何创建ajax对象?
    psd图片到html
    小知识
    sass入门
  • 原文地址:https://www.cnblogs.com/NBeveryday/p/interface.html
Copyright © 2011-2022 走看看