抽象类的匿名子类

简介: 抽象类的匿名子类

抽象类的匿名子类

在B站学习java写的代码

代码如下

PersonTest类

package com.day0130_2;
/*
 * 抽象类的匿名子类
 * 
 */
public class PersonTest {
  public static void main(String[] args) {
    method(new Student());//匿名对象
    Worker worker =new Worker();
    method1(worker);//非匿名的类 非匿名的对象
    method1(new Worker());//非匿名的类 匿名的对象
    System.out.println("*****************");
    //创建了一匿名子类的对象:p
    Person p=new Person() /*多态*/{
      @Override
      public void eat() {
        System.out.println("吃东西");
      }
      @Override
      public void breath() {
        System.out.println("好好呼吸");
      }
    };
    method1(p);
    /*
    吃东西
    好好呼吸
    */
    System.out.println("*****************");
    //创建匿名子类的匿名对象
    method1(new Person () {
      @Override
      public void eat() {
        System.out.println("吃好吃的东西");
      }
      @Override
      public void breath() {
        System.out.println("好好呼吸新鲜空气");
      }
    });
  }
  public static void method1(Person p) {//多态
    p.eat();
    p.breath();
  }
  public static void method(Student s) {
  }
}
abstract class Creature{
  public abstract void breath();
}
abstract class Person extends Creature{
  String name;
  int age;
  public Person() {
  }
  public Person(String name,int age) {
    this.name=name;
    this.age=age;
  }
  //抽象方法
  public abstract void eat();
  public void walk() {
    System.out.println("人走路");
  }
}
class Worker extends Person{
  @Override
  public void eat() {
  }
  @Override
  public void breath() {
  }
}
相关文章
|
7月前
|
设计模式 Java 编译器
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
|
5月前
|
Java
子类的父类和接口具有共同的方法
子类的父类和接口具有共同的方法
36 7
|
6月前
|
编译器
继承——抽象基类与访问权限
继承——抽象基类与访问权限
|
Java 程序员 C#
C++类成员的访问权限以及类的封装
C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。 Java、C# 程序员注意,C++ 中的 public、private、protected 只能修饰类的成员,不能修饰类,C++中的类没有共有私有之分。 在类的内部(定义类的代码内部),无论成员被声明为 public、protected 还是 private,都是可以互相访问的,没有访问权限的限制。 在类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问 p
116 0
抽象类和普通类的区别
抽象类和普通类的区别
157 0
|
编译器 数据安全/隐私保护 C++
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
167 0
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
562 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
关于纯虚函数继承子类 ,父类指向子类后 将父类指针转为子指针,就可以调用子类其他接口
关于纯虚函数继承子类 ,父类指向子类后 将父类指针转为子指针,就可以调用子类其他接口
关于纯虚函数继承子类 ,父类指向子类后 将父类指针转为子指针,就可以调用子类其他接口
|
Java Scala 开发者
匿名子类|学习笔记
快速学习匿名子类。
子类到底能不能继承父类的私有属性?
继承就像是我们现实生活中的父子关系,儿子可以遗传父亲的一些特性,在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体;子类通过继承父类的属性的行为,我们称之为继承。Java只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类定义相同的功能,当功能内容不同的时候,子类对象不确定要运行哪一个,在Java中用另一种形式体现出来,就是接口的多实现。