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是单继承但可以有多个接口  先继承后接口
接口可以多继承 

猜你喜欢

转载自www.cnblogs.com/cxy0210/p/11297316.html
8.4