接口,一个完全抽象的类:抽象类的抽象类,
接口只存在抽象方法和全局静态常量
接口可以继承接口
java是单继承,接口可以继承多个接口,多实现
普通类可以继承普通类
普通类可以继承抽象类
普通类可以实现接口
抽象类可以继承普通类
抽象类可以继承抽象类
抽象类可以实现接口
接口可以继承接口
接口存在的意义:是为了让子类实现,
单例:有且只能有一个对象,私有化构造方法
final和abstract关键字的作用?
final 可以用来修饰变量,方法,类。修饰变量就变成常量,修饰方法就不能被子类重写,修饰类就不能被继承 。
abstract修饰类就变成抽象类,修饰方法变成抽象方法,抽象方法的意义是为了让子类重写,没有方法体,抽象类的定义:一个被abstract修饰的类就是抽象类,包含一个抽象方法的类就是抽象类,抽象类不一定有抽象方法。
介绍Java垃圾回收机制?
是java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
(一)编写程序描述兔子和青蛙
需求说明:使用面向对象的思想,设计自定义类描述兔子和青蛙。
实现思路及关键代码
package com.zuoye;
/**
* 动物类
* @author Gramer
*
*/
public abstract class Animals {
String name;
String color;
String lei;
public Animals(String name,String color,String lei){
this.name=name;
this.color=color;
this.lei=lei;
}
public abstract String eat();
public abstract String say();
public abstract void show();
public void swimming() {
}
}
package com.zuoye;
/**
* 兔子类
* @author Gramer
*
*/
public class Rabbit extends Animals{
public Rabbit(String name, String color, String lei) {
super(name, color, lei);
}
@Override
public String eat() {
return "爱吃胡萝卜";
}
@Override
public String say() {
return "正在咕咕叫";
}
@Override
public void show() {
System.out.println("那只"+color+"的,名叫"+name+"的兔子"+say());
System.out.println("兔子是"+lei+", "+eat());
}
}
package com.zuoye;
/**
* 青蛙类
* @author Gramer
*
*/
public class Frog extends Animals implements Swimming{
public Frog(String name, String color, String lei) {
super(name, color, lei);
}
@Override
public void swimming() {
System.out.println("虽然不是鱼,但青蛙也是泳坛高手");
}
@Override
public String eat() {
return "爱吃昆虫";
}
@Override
public String say() {
return "正在呱呱的叫";
}
@Override
public void show() {
System.out.println("那只"+color+",名叫"+name+"的青蛙"+say());
System.out.println("青蛙是"+lei+","+eat());
}
}
package com.zuoye;
/**
* 游泳接口
* @author Gramer
*
*/
public abstract interface Swimming {
public abstract void swimming();
}
package com.zuoye;
public class Test {
public static void main(String []args){
Animals rabbit = new Rabbit(“美人”, “黑色的”, “哺乳类”);
rabbit.show();
Animals frog = new Frog(“大兵”, “绿色的”, “非哺乳类”);
frog.show();
frog.swimming();
}
}
接口只存在抽象方法和全局静态常量
接口可以继承接口
java是单继承,接口可以继承多个接口,多实现
普通类可以继承普通类
普通类可以继承抽象类
普通类可以实现接口
抽象类可以继承普通类
抽象类可以继承抽象类
抽象类可以实现接口
接口可以继承接口
接口存在的意义:是为了让子类实现,
单例:有且只能有一个对象,私有化构造方法
final和abstract关键字的作用?
final 可以用来修饰变量,方法,类。修饰变量就变成常量,修饰方法就不能被子类重写,修饰类就不能被继承 。
abstract修饰类就变成抽象类,修饰方法变成抽象方法,抽象方法的意义是为了让子类重写,没有方法体,抽象类的定义:一个被abstract修饰的类就是抽象类,包含一个抽象方法的类就是抽象类,抽象类不一定有抽象方法。
介绍Java垃圾回收机制?
是java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
(一)编写程序描述兔子和青蛙
需求说明:使用面向对象的思想,设计自定义类描述兔子和青蛙。
实现思路及关键代码
package com.zuoye;
/**
* 动物类
* @author Gramer
*
*/
public abstract class Animals {
String name;
String color;
String lei;
public Animals(String name,String color,String lei){
this.name=name;
this.color=color;
this.lei=lei;
}
public abstract String eat();
public abstract String say();
public abstract void show();
public void swimming() {
}
}
package com.zuoye;
/**
* 兔子类
* @author Gramer
*
*/
public class Rabbit extends Animals{
public Rabbit(String name, String color, String lei) {
super(name, color, lei);
}
@Override
public String eat() {
return "爱吃胡萝卜";
}
@Override
public String say() {
return "正在咕咕叫";
}
@Override
public void show() {
System.out.println("那只"+color+"的,名叫"+name+"的兔子"+say());
System.out.println("兔子是"+lei+", "+eat());
}
}
package com.zuoye;
/**
* 青蛙类
* @author Gramer
*
*/
public class Frog extends Animals implements Swimming{
public Frog(String name, String color, String lei) {
super(name, color, lei);
}
@Override
public void swimming() {
System.out.println("虽然不是鱼,但青蛙也是泳坛高手");
}
@Override
public String eat() {
return "爱吃昆虫";
}
@Override
public String say() {
return "正在呱呱的叫";
}
@Override
public void show() {
System.out.println("那只"+color+",名叫"+name+"的青蛙"+say());
System.out.println("青蛙是"+lei+","+eat());
}
}
package com.zuoye;
/**
* 游泳接口
* @author Gramer
*
*/
public abstract interface Swimming {
public abstract void swimming();
}
package com.zuoye;
public class Test {
public static void main(String []args){
Animals rabbit = new Rabbit(“美人”, “黑色的”, “哺乳类”);
rabbit.show();
Animals frog = new Frog(“大兵”, “绿色的”, “非哺乳类”);
frog.show();
frog.swimming();
}
}