文章目录
1:文章介绍
2:案列展示
2.1 Demo4_1
案列介绍
- 知识点:P113 继承的概念
- 1、继承的概念:子类dog继承了父类Animal的属性(名称、年龄)和方法(setName、setAge、getName、getAge)
- 2、子类直接访问了父类的非私有属性COLOR
代码展示
Animal类
package Demo4_1;
public class Animal {
// ****************************** *1、属性*******************************
private String name; //声明name属性
private int age; //声明age属性
public final String COLOR = "黑色"; //定义COLOR属性
// *******************************2、方法-其他*******************************
public String getName() { //定义name属性的getter方法
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() { //定义age属性的getter方法
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Dog类
package Demo4_1;
/**
* 知识点:P113 继承的概念
* 1、继承的概念:子类dog继承了父类Animal的属性(名称、年龄)和方法(setName、setAge、getName、getAge)
* 2、子类直接访问了父类的非私有属性COLOR
*/
class Dog extends Animal {
}
主函数
package Demo4_1;
public class Example01 {
public static void main(String[] args) {
Dog dog = new Dog(); //创建一个Dog类的对象
dog.setName("牧羊犬"); //此时调用的是父类Animal中的setter方法
dog.setAge(3); //此时调用的是父类Animal中的setter方法
System.out.println("名称:"+dog.getName()+",年龄:"+dog.getAge()
+",颜色:"+dog.COLOR);
}
}
运行结果

2.2 Demo4_2
案列介绍
- 知识点:怕114 继承的概念
- 1.子类可以增加自己的属性(color)和方法9getColor,setColor)
代码展示
Animal类
ackage Demo4_2;
public class Animal {
//*************************属性********************//
private String name;
private int age;
public final String COLOR = "黑色";
//*************************方法**********//
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Dog类
package Demo4_2;
/*
* 知识点:怕114 继承的概念
* 1.子类可以增加自己的属性(color)和方法9getColor,setColor)
*/
class Dog extends Animal {
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}}
主函数
package Demo4_2;
public class Example02 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setName("小白");
dog.setAge(3);
dog.setColor("白");
System.out.println("名称 " + dog.getName() + "年龄 " + dog.getAge() + "颜色 " + dog.getColor());
}
}
运行结果

2.3 Demo4_3
案列介绍
- 知识点:p115 方法重写的概念(方法名相同,)
- 1.子类可以重写父类的方法
- 2.子类重写父类方法是,必须使用@over
代码展示
Animal类
package Demo4_3;
public class Animal {
// 定义动物的叫声
void shout()
{
System.out.println("动物发出叫声");
}
}
Dog类
package Demo4_3;
/*
* 知识点:p115 方法重写的概念(方法名相同,)
* 1.子类可以重写父类的方法
* 2.子类重写父类方法是,必须使用@over*/
public class Dog extends Animal {
// 重写Animal类的shout()方法
@Override
void shout()
{
System.out.println("汪汪汪...");
}
}
主函数
package Demo4_3;
public class Example03 {
public static void main(String[] args)
{
Dog dog = new Dog();
dog.shout();
}
}
运行结果

2.4 Demo4_10
案列介绍
- 定义dog继承抽象类animal
- 实现抽象方法shout
代码展示
Animal类
package Demo4_10;
abstract class Animal {
// 定义抽象方法shout()
abstract void shout();
}
Dog类
package Demo4_10;
/*
* 定义dog继承抽象类animal
* 实现抽象方法shout*/
class Dog extends Animal {
// 实现抽象方法shout()
void shout() {
System.out.println("汪汪……");
}
}
主函数
package Demo4_10;
public class Example10 {
public static void main(String[] args) {
Dog dog = new Dog(); // 创建Dog类的对象
dog.shout(); // 通过dog对象调用shout()方法
}
}
运行结果

2.5 Demo4_11
案列介绍
- 接口只定义类该具备的方法,但不提供实现。
- 认识全局常量(public static final)
- 接口中方法默认权限是(public abstract)
代码展示
接口类
package Demo4_11;
interface Action {
public void eat();
}
package Demo4_11;
/*
* 接口只定义类该具备的方法,但不提供实现。
* 认识全局常量(public static final)
* 接口中方法默认权限是(public abstract)
* */
public interface Animal {
public static final int ID = 1;
public static final String name = "jinx";
public abstract void shout();
public abstract void info();
public static int getId() {
return Animal.ID;
}
}
Dog类
package Demo4_11;
/*
* Dog类实现了Animal接口和Action接口
* 实现类必须实现所有接口的抽象方法
*
* */
public class Dog implements Animal,Action {
@Override
public void shout() {
System.out.println("汪汪汪。。。。");
}
@Override
public void info(){
System.out.println("名称"+name);
}
@Override
public void eat(){
System.out.println("喜欢吃骨头");
}
}
主函数
package Demo4_11;
public class Example11 {
public static void main(String[] args) {
System.out.println("编号"+Animal.getId());
Dog dog = new Dog();
dog.shout();
dog.info();
dog.eat();
}
}
运行结果

2.6 Demo4_14
案列介绍
- 多态的概念,父类引用指向子类,调用子类重写对象
代码展示
package Demo4_14;
/*
* 多态的概念,父类引用指向子类,调用子类重写对象
*
* */
abstract class Animal{
abstract void shout ();
}
class Cat extends Animal{
@Override
public void shout() {
System.out.println("喵喵喵");
}
}
class Dog extends Animal{
@Override
public void shout() {
System.out.println("汪汪汪");
}
}
public class Example14 {
public static void main(String[] args) {
Animal an1 = new Cat();
an1.shout();
Animal an2 = new Dog();
an2.shout();
}
}
运行结果

2.7 Demo4_23
案列介绍
- 匿名类部类 是一种没有名字的类,他在定义的同时就创建了对象。
代码展示
package Demo4_23;
/*
* 匿名类部类 是一种没有名字的类,他在定义的同时就创建了对象。
* */
interface Animal {
void shout();
}
/*
* 测试类
* */
public class Example23 {
public static void main(String[] args) {
String name="小虎";
//调用animalshout()方法,传入匿名内部类实现animale接口.
animalShout(new Animal() {
@Override
public void shout() {
System.out.println(name + "叫");
}
});
}
public static void animalShout(Animal animal) {
animal.shout();
}
}
运行结果

3 简答题
1.简述Java中继承的概念以及使用继承的好处。
在 Java 中,继承是面向对象编程的三大特性之一(封装、继承、多态),它描述的是类与类之间的is-a关系(例如 “学生是一个人”“猫是一种动物”)。具体来说,继承允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性(成员变量)和方法,并可以在此基础上添加新的属性和方法,或重写父类的方法以实现特定功能。
2.简述多态的作用
多态是面向对象编程的核心特性之一,其核心作用是增强代码的灵活性、可扩展性和复用性。
3.简述接口和抽象类的区别。
抽象类:用abstract class定义,可包含抽象方法(无实现)和非抽象方法(有实现),也可包含成员变量。
接口:用interface定义,Java 8 之前只能包含抽象方法(默认public abstract)和常量(默认public static final);Java 8 及之后允许定义默认方法(default,有实现)和静态方法(static,有实现),但成员变量仍只能是常量。
4 书上p144编程题


283

被折叠的 条评论
为什么被折叠?



