第10/11章
1.创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将它向上转型到基类并调用这个方法。
class Fruit{
private String name;
private double weight;
public Fruit(String name,double weight) {
this.name=name;
this.weight=weight;
}
public void showname() {
System.out.println(this.name);
}
public void showweight() {
System.out.println(this.weight);
}
}
class apple extends Fruit{
public apple(String name, double weight) {
super(name, weight);
}
public void showweight() {
System.out.println("这是苹果");
}
}
public class exercise {
public static void main(String[] args) {
Fruit fr2=new apple("hongpinguo",5);
fr2.showname();
fr2.showweight();
}
}
2.尝试创建一个子类和父类,分别创建构造方法,然后向父类和子类添加成员变量和方法,并总结构建子类对象时的顺序。
public abstract class UseCase1 {
abstract void testAbstract();
UseCase1(){
System.out.println("before testAbstract()");
testAbstract();
System.out.println("after testAbstarcat()");
}
public static void main(String args[]){
new Atest();
}
}
class Atest extends UseCase1{
private int i=1;
void testAbstract(){
System.out.println("testAbstract()"+i);
}
public Atest(){
System.out.println(i);
}
}
3.尝试在方法中编写一个匿名内部类
public class AnonymityInnerClass {
}
class OuterClass4{
public OutInterface doit(final String s){
return new OutInterface(){
private int i=0;
public int getValue(){
System.out.println(s);
return i;
}
public void f(){
System.out.println("f()");
}
};
}
}
interface OutInterface {
}
4.尝试将主方法编写到静态内部类,然后在DOS中编译运行,注意编译后出现的.class文件。
public class exercise {
static class inexercise{
void dosomething() {
System.out.println(111);
}
public static void main(String[] args) {
System.out.println(222);
}
}
}
5.尝试编写一个静态内部类,在主方法中创建其内部类的实例。
public class exercise {
static class inexercise{
static int a;
void dosth() {
System.out.println(111);
}
}
public static void main(String[] args) {
inexercise tp=new inexercise();
tp.dosth();
}
}