作者:阮晓龙发布时间:2024/9/13 13:17:51
基本信息:
章节名称:智能医学工程专业-计算机程序设计-第10章-继承与多态
授课教师:信息技术学院互联网技术教学团队
完成时间:2024年09月
适用年级:2023级
适用专业:智能医学工程
文档内容:
讲稿课件(教学版):智能医学工程-计算机程序设计-课件-第10章-继承与多态-教学版.pdf
讲稿课件(笔记版):智能医学工程-计算机程序设计-课件-第10章-继承与多态-笔记版.pdf
讲稿课件(在线版):
学习资源:
代码:eg10.1.2
class Animal { String name; Animal(String name) { this.name = name; } } class Dog extends Animal { Dog(String name) { super(name); // 调用父类的构造方法 } void bark() { System.out.println(name + " is barking."); } } public class Main { public static void main(String[] args) { Dog dog = new Dog("Buddy"); dog.bark(); } }
代码:eg10.2.1
class MathOperations { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } int add(int a, int b, int c) { return a + b + c; } public class Main { public static void main(String[] args) { MathOperations math = new MathOperations(); System.out.println(math.add(2, 3)); // 调用第一个add方法 System.out.println(math.add(2.5, 3.5)); // 调用第二个add方法 System.out.println(math.add(2, 3, 4)); // 调用第三个add方法 } }
代码:eg10.2.2
class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends Animal { @Override void sound() { System.out.println("Dog barks"); } } public class Main { public static void main(String[] args) { Animal myDog = new Dog(); // 多态 myDog.sound(); // 调用Dog类的sound方法 } }
代码:eg10.3.1
class Person { String name; Person(String name) { this.name = name; } @Override public String toString() { return "Person[name=" + name + "]"; } } public class Main { public static void main(String[] args) { Person person = new Person("Alice"); System.out.println(person.toString()); // 调用Object类的toString方法 } }
代码:eg10.3.2
class Animal { } public class Main { public static void main(String[] args) { Class<?> animalClass = Animal.class; System.out.println("Class Name: " + animalClass.getName()); } }
代码:eg10.1-14
class Parent { void parentMethod() { System.out.println("Parent method"); } } class Child extends Parent { void childMethod() { System.out.println("Child method"); } } public class Main { public static void main(String[] args) { Parent parent = new Child(); // 向上转型 parent.parentMethod(); // 调用父类方法,安全 // Child child = parent; // 编译错误:不能直接向下转型 if (parent instanceof Child) { Child child = (Child) parent; // 向下转型,确保安全 child.childMethod(); // 调用子类方法 } // 错误示例: // Parent wrongParent = new Parent(); // Child wrongChild = (Child) wrongParent; // 运行时错误:ClassCastException } }
代码:10.4.1
class Animal { void sound() { System.out.println("Animal sound"); } } class Dog extends Animal { void sound() { System.out.println("Dog barks"); } } public class Main { public static void main(String[] args) { Animal animal = new Dog(); // 向上转型 animal.sound(); // 调用Dog的sound方法 Dog dog = (Dog) animal; // 向下转型 dog.sound(); } }
代码:eg10.4.2
class Animal { String name = "Animal"; void sound() { System.out.println("Animal sound"); } } class Dog extends Animal { String name = "Dog"; void sound() { super.sound(); // 调用父类的方法 System.out.println("Dog barks"); } void displayNames() { System.out.println("Name in Dog: " + name); System.out.println("Name in Animal: " + super.name); // 访问父类的属性 } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.sound(); // 调用覆盖的方法,并使用super调用父类方法 dog.displayNames(); // 显示子类和父类的name属性 } }
代码:eg10.5
class Animal { public String publicField = "Public Field"; protected String protectedField = "Protected Field"; String defaultField = "Default Field"; // 无修饰符 private String privateField = "Private Field"; public void showFields() { System.out.println(publicField); System.out.println(protectedField); System.out.println(defaultField); System.out.println(privateField); } } public class Main { public static void main(String[] args) { Animal animal = new Animal(); animal.showFields(); // 访问所有字段 System.out.println(animal.publicField); // 访问public字段 System.out.println(animal.protectedField); // 访问protected字段 System.out.println(animal.defaultField); // 访问default字段 // System.out.println(animal.privateField); // 错误:private字段不可访问 } }
代码:eg10.6
final class FinalClass { final void finalMethod() { System.out.println("This is a final method."); } } class AttemptedSubclass /*extends FinalClass*/ { // 错误:无法继承final类 // void finalMethod() { // 错误:无法覆盖final方法 // System.out.println("Trying to override a final method."); // } } public class Main { public static void main(String[] args) { final int finalVariable = 10; // finalVariable = 20; // 错误:无法更改final变量的值 System.out.println("Final variable value: " + finalVariable); } }
软件资源: