继承
面向对象中,子类继承父类,避免重复的行为定义。一般来说,父类的父类也称父类,且同一个子类只允许拥有一个父类,而同一个父类则可以拥有多个子类。继承的出现提高了代码的复用性,也让类与类之间产生了关系,提供了多态的前提。
在Java中,使用关键字extends来表示类与类之间的继承关系:public class SwordsMan extendsRole
中类SwordsMan继承了类Role,类SwordsMan扩充了类Role的行为,也就是类Role中有定义的程序代码,类SwordsMan因为继承而都拥有了。
注意建立对象时候的顺序,应该遵守从右往左读的原则(这样才符合IS-A原则):
Role role1 = new SwordsMan();
Role role2 = new Magician();
赋值时:如果用父类建立了一个对象实例,那么要将这个对象赋给它的子类时,需要进行强制转:
Role role1 = new SwordsMan();
SowrdsMan swordsMan = (SwordsMan) role1;
我们还可以使用instanceof来判断IS-A关系:
System.out.println(SwordsMan instanceof Role); \\输出true
System.out.println(Role instanceof SwordsMan); \\输出false
多态
按照字面的意思上说,就是多种状态。指的是使用一个接口,操作多种类型的数据。
Square(正方形)类继承Rectangle(矩形)类合适吗?
合适,因为正方形是一种(IS-A)矩形,它拥有矩形的一般特点。
实现格式:
class 子类名称 implements 接口A,接口B,….{
//子类成员声明
}
public abstract
可以省略,但要注意:接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字。interface A extends B, C{……}
可以用于定义常量,例如:
public enum Color {
RED, GREEN, BLANK, YELLOW
}
可以用于switch语句,将enum定义的枚举常数用以switch判断选择。
1. 填空:Linux Bash中,(grep )命令可以进行全文搜索。
4.填空:System.out.println(“”+52+25);的结果是(5225)
5.填空:System.out.println(52+25+””);的结果是(77)
8.CH04 填空:p86 命令行下编译Guess.java的命令是(javac -d . Guess.java)
9.CH04 判断:p86 Guess.java中guess的值无法输入12。(X)
11.CH04 判断: Java中,=与==并没有在基本类型和类类型的不同。(OK)
14.CH04 填空:Java中的多维数组都是由(一维数组组成)。
16.CH04 填空:p104 CopyArray.java 中修改int [] scores2 = Arrays.copyOf(scores1, scores1.length,使得输出的第二行只有前五个元素,修改后的代码为(int [] scores2 = Arrays.copyOf(scores1, scores1.length/2) 或int [] scores2 = Arrays.copyOf(scores1, 5) )
24.CH05 判断:Java中类总会有默认构造方法。(X)
29.CH05 填空:Java中成员方法中引用成员变量,要使用(this)关键字。
32.CH05 判断:Java中方法内可以定义类。(OK)
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。