欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第三章 继承与多态 T3(美和易思)

程序员文章站 2022-07-16 09:24:49
...

1. 学生实践练习
需求说明
在 com.mstanford.scme 包中创建一个学生类(Student)类,在 com.mstandford 包中创建
测试类 Test 并输出学生信息。
实现思路
(1)创建 com.mstanford.scme 包,在该包内创建一个学生类(Student)类,该类中有两
个 public 类型的属性,姓名(name)和年龄(age)。
(2)在 com.mstanford 包内创建 Test 类,并导入 Student 类所在包,在主函数中通过构造
方法实例化 Student 对象。通过实例名.属性输出信息。
(3)将 Student 中的 age 属性分别修改设置为 protected、缺省修饰符和 private 三种不
同的访问级别,观察结果并思考原因。

public class Student {
	public  String name ="李白";
	protected char sex;
	 private int age;
	
}
import com.mstanford.scme.Student;

public class Test {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Student ss = new Student();
		System.out.println(ss.name);

	)
}

2.学生实践练习
需求说明
创建一个交通工具类(Vehicles)父类,以及两个子类,分别是轿车类(Car)和卡车类(Truck),
显示出各类的相关信息。
程序运行结果如图所示。
图 程序运行结果
实现思路
(1)创建名为交通工具(Vehicles)的父类,该类中有两个 String 类型的属性,商标(brand)
和颜色(color),该类中还包含一个行驶(run)的方法,该方法中输出汽车的品牌+“正在
行驶”,并通过调用该类的 showInfo 方法,在控制台显示汽车商标和颜色。通过该类的有参
构造方法初始化其成员属性。
(2)创建小汽车(Car)类继承 Vehicles 类,在该类中增加 int 型成员属性座位(seats)
和 showCar 方法,该方法用于在控制台显示小汽车的信息。
(3)编写卡车(Truck)类继承 Vehicles 类,添加 float 型成员属性载重(load)和 showTruck
方法,该方法用于在控制台显示卡车的信息。
(4)创建测试类 VehiclesTest,在该类的主方法中完成需求中相关信息的输出。
(5)创建 com.mstanford.scme.oriented,将上述类保存至该包中。

public class Vehicles {
	String brand;//商标
	String color;//颜色
	
	public void run() {
		System.out.println("我"+this.brand+"正在行驶");
	}
	public Vehicles(String b,String b1) {
		this.brand=b;
		this.color=b1;
	}
	public void showlnfo() {
		System.out.println("品牌:"+this.brand+"\t 颜色:"+this.color);
	}
}

public class Car extends Vehicles{
	int seats;
	public void showCar() {
		super.showlnfo();
		System.out.println("座位:"+seats);
	}
	public Car(String brand,String color,int seats) {
		super(brand,color);
		this.seats = seats;
	}
	

}
public class Truck extends Vehicles{
	float load;
	public void showTUuck() {
		super.showlnfo();
		System.out.println("载重:"+load);
	}
	
	public Truck(String brand, String color, float load) {
		super(brand, color);
		this.load = load;
	}

}

public class VehicleTest {
	public static void main(String[] args) {
		Car c = new Car("兰博基尼", "白色",2);
		c.showCar();
		System.out.println();
		Truck t = new Truck("法拉利", "玄色",3500000);
		t.showTUuck();
	}

}

3.学生实践练习
需求说明
动物园有各种动物,不同的动物吃不同的食物。新建 Animal 父类和老虎 Tigger 子类。并在
老虎子类中重写父类的 eat 方法,观察动物的行为。
实现思路
(1)创建各种动物的父类 Animal 类,在该类中定义 eat()方法。
(2)创建动物老虎(Tigger),继承 Animal 类,重写 eat()方法。
(3)新建 Test 类,main 方法中,实例化老虎类,调用 eat()方法。观察执行结果。
(4)在 Tigger 类中新定义 action()方法,通过 super 关键字,调用父类本身的 eat()行
为。

public class Animal {
	String chi;
	
	public void eat() { 
		System.out.println("吃肉");
	}
}

public class Tigger extends Animal{
	public void eat() {
		
		System.out.println("吃河马");
	}
	public void action() {
		super.eat();
	}

}
public class Test {
	public static void main(String[] args) {
		Tigger t=new Tigger();
		t.eat();
		t.action();
	}
}

4.学生实践练习
需求说明
创建 Book 对象,深入了解 Java 程序启动 class 文件被读取时,类加载和静态代码块的执行
过程,以及 static 方法调用执行顺序。
实现思路
(1)注释掉主函数中 Book book = new Book();观察类启动加载时 static 代码块的启动方
式。
(2)去掉主函数注释中 Book book = new Book();观察类启动加载时 static 代码块的启动
方式和实例化对象时的启动顺序。

public class Book {
	 public static int booksum=0;//静态变量   
	static {//这是静态初始化块
		System.out.println("this is static block");
	}
	
	 {//实例初始化块     
	        System.out.println("初始化块:"+booksum);     
	    }  
	
	 public Book(){//构造方法     
	        System.out.println("this is Book's constructor~");     
	        booksum+=1;     
	    } 
	 public static void print(){//静态方法     
	        System.out.println("this is static method~");     
	    }
public static void main(String[] args) {
	 Book book = new Book();
	 //Book book = new Book();
	 Book book1=new Book();
	 
}
}

课堂小练习

 {//实例初始化块     
        System.out.println("初始化块:"+booksum);     
    }  

 public Book(){//构造方法     
        System.out.println("this is Book's constructor~");     
        booksum+=1;     
    } 
 public static void print(){//静态方法     
        System.out.println("this is static method~");     
    }
public class Student extends Person{
	long id;
	public void Study(){
		System.out.println("学习");
	}
	public static void main(String[] args) {
		Student ss =new Student();
		ss.name ="变形金刚";
		ss.age=3;
		ss.sex='男';
		ss.id=3838438;
		System.out.println(ss.name);
	}

}
public class Teacher extends Person {
   int id;
   public void sk() {
	   System.out.println("授课");
   }
   public static void main(String[] args) {
	   Teacher t =new Teacher();
	   t.name="扶扶";
	   System.out.println("姓名:"+t.name);
	   t.eat();
}
}