• 7.29~8.4 每周总结


    本周的学习进度有点慢,简单学习并实践了Java的多态,接口。

    多态的代码如下


    package 多态; public class animal { public void show() { System.out.println("我是一个动物!"); } } package 多态; public class cat extends animal{ public void show() { System.out.println("我是一只猫!"); } } package 多态; public class dog extends animal{ public void show() { System.out.println("我是一只狗!"); } } package 多态; public class text { public static void main(String[] args) { //不使用多态 dog dog1=new dog(); dog1.show(); cat cat1=new cat(); cat1.show(); //使用多态 animal animal1=new dog(); animal1.show(); animal animal2=new cat(); animal2.show(); animal animal3=new animal(); animal3.show(); /*对象的转型 向上型 子类对象->父类对象 安全 父类对象->子类对象 不安全 */ //向下转型 安全 dog dog2=(dog) animal1; dog2.show(); // 向下转型 不安全的 cat cat2=(cat) animal1; cat2.show(); //向上转型 安全 animal animal4=cat1; animal4.show(); } }

     对下转型有风险,运行结果如下:

    对下转型的错误在执行的时候才能找到错误,在编写时不会发现错误。

    接口类

    package 多态;
    
    public interface animal1 {
    	public void show1();  //接口在父类只有方法,在子类实现方法
    
    }
    
    package 多态;
    
    public class cat1 implements animal1{
    	public void show1() {
    		System.out.println("我是一只猫!");
    	}
    
    }
    
    package 多态;
    
    public class dog1 implements animal1{
    	public void show1() {
    		System.out.println("我是一只狗!");
    	}
    
    }
    
    package 多态;
    
    public class text1 {
    	public static void main(String[] args) {
           //向上转型 父类引用指向dog类的具体实现
    		animal1 animal2=new dog1();
    		animal2.show1();
    		//向下转型
    	    dog1 dog2=(dog1) animal2;
    	    dog2.show1();
    		}
    }
    

     运行结果如下:

    对于接口,在父类时声明方法,在子类中进行具体实现。

     其次:

    匿名类

    package 匿名内部类;
    
    public interface A {
       public void a();
    }
    
    
    package 匿名内部类;
    
    public class B implements A{
    
    	@Override
    	public void a() {
    		// TODO Auto-generated method stub
    		System.out.println("只使用一次的方法");
    	}
    	
    
    }
    
    package 匿名内部类;
    
    public class text {
    	public void Test(A a) {
    	a.a();
    	}
    
     
     public static void main(String[] args) {
    	text t=new text();
    	t.Test(new B());
    	
    	//匿名内部类
    	t.Test(new A() {
    
    		@Override
    		public void a() {
    			// TODO Auto-generated method stub
    		//具体实现部分	 
    			System.out.println("hi!!");
    		}});
    		
    	}
    }
     
    

     结果截图:

    Java 学习笔记:


    我的手机 2019/8/4 9:58:09

    syso ctrl+/  输出语句
    main ctrl+/ 主函数
    多行注释快捷键 
    ​ctrl+shift+/
    类内的输入  ​Scanner scaner=new Scanner(System·in);
    ​int n=scanner.nextInt();
    ​ctrl+shift​+o 自动导包  println 换行
    outer 类似goto​ 标签里面
    forreach 遍历数组
    for(j;arr(数组名)​)
    System​·out·println(j);
    动态内存分布​
    int arr[] =new int​[3]
    静态初始化 int arr[]=int []{1,2,3}​
    不固定参数 String···​hobbies
    ctrl+d 删除一行​
    调用 静态方法 类名.方法 对象.方法​
    内部类 破坏类的基本结构,好处 方便使用外部类的属性
    执行顺序 静态构造块 (只执行一次) 通用构造块 构造方法
    String == 比较的是引用
    name1.equals(name 2)  比较的是内容
    字符串连接 string name="张"  name+="三"
    生成 get set 快捷方式 alt+shift+s
    extends 继承
    抽象类 abstract  子类实现方法 父类声明方法
    final 常量 终止
    static 静态
    Java是单继承但可以有多个接口  先继承后接口
    接口可以多继承 
  • 相关阅读:
    Javascript Property Names
    Java泛型
    Activity 与 Task
    使用ddns搭建免费服务器
    DDNS
    SimpleAdapter用法
    Java KeyNote
    Android无法访问本地服务器(localhost/127.0.0.1)的解决方案
    Android 添加网络权限
    Java 匿名内部类
  • 原文地址:https://www.cnblogs.com/cxy0210/p/11297316.html
Copyright © 2020-2023  润新知