自己总结继承和多态就是一个是拆解,一个是归列合并。
抽象类用 abstract
继承用 extends
比较两个引用的是不是同一个对象用equals方法a.equals(b);
验证a是否是b的父类 if(a instanceof b)
凡是装到数据类型为object的对象都会失去它的本质,变成object类型
object有equals()、getClass()、hashCode(),toString()4个方法
多重继承java不支持这种方式,因为多重继承会有称为“致命方块”的问题,
java有个解决方案,使用接口。关键词是interface
接口可以用来解决多重继承的问题却又不会产生致命方块这种问题:把全部方法设为抽象的!这样,子类就得要实现此方法,因此java虚拟机在执行期间就不会搞不清楚要用哪一个继承版本。
接口方法带有public 和 abstract的意义,这两个修饰符是属于选择的
接口的定义:
public interface Pet{....} 使用interface来取代class
接口的是实现:
public class Dog extends Canine implements Pet{...}
使用implements这个关键词。注意到实现interface时还是必须在某个类的继承之下
public interface Pet{
public abstract void beFriendly(); 接口的方法一定是抽象的,
抽象类用 abstract
继承用 extends
比较两个引用的是不是同一个对象用equals方法a.equals(b);
验证a是否是b的父类 if(a instanceof b)
凡是装到数据类型为object的对象都会失去它的本质,变成object类型
object有equals()、getClass()、hashCode(),toString()4个方法
多重继承java不支持这种方式,因为多重继承会有称为“致命方块”的问题,
java有个解决方案,使用接口。关键词是interface
接口可以用来解决多重继承的问题却又不会产生致命方块这种问题:把全部方法设为抽象的!这样,子类就得要实现此方法,因此java虚拟机在执行期间就不会搞不清楚要用哪一个继承版本。
接口方法带有public 和 abstract的意义,这两个修饰符是属于选择的
接口的定义:
public interface Pet{....} 使用interface来取代class
接口的是实现:
public class Dog extends Canine implements Pet{...}
使用implements这个关键词。注意到实现interface时还是必须在某个类的继承之下
public interface Pet{
public abstract void beFriendly(); 接口的方法一定是抽象的,